//*********************************************************************** // // listcombo.cpp // //*********************************************************************** #include #include "listcombo.h" CMyApp myApp; ///////////////////////////////////////////////////////////////////////// // CMyApp luokan aliohjelmien toteutus BOOL CMyApp::InitInstance () { m_pMainWnd->ShowWindow (m_nCmdShow); m_pMainWnd->UpdateWindow (); return TRUE; } ///////////////////////////////////////////////////////////////////////// // CMainWindow luokan aliohjelmien toteutus BEGIN_MESSAGE_MAP (CMainWindow, CWnd) // MESSAGE MAP alkaa ON_WM_CREATE () // lomake luodaan ON_BN_CLICKED (1, OnButtonListClicked) // Tutki ListBox -nappia painetaan ON_BN_CLICKED (3, OnButtonComboClicked) // Tutki ComboBox -nappia painetaan END_MESSAGE_MAP () // MESSAGE MAP loppuu CMainWindow::CMainWindow () { CString strWndClass = AfxRegisterWndClass ( NULL, // ikkunan tyyli myApp.LoadStandardCursor (IDC_ARROW), // ikkunan kursori (HBRUSH) COLOR_WINDOW, // ikkunan taustan väri myApp.LoadStandardIcon (IDI_APPLICATION) // ikkunan ikoni ); // rekisteröidään oma ikkunaluokka CreateEx ( NULL, // ikkunan lisätyyli strWndClass, // lomakkeen ikkunaluokka "ListBox & ComboBox", // ikkunan otsikko WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU, // ikkunan tyyli CW_USEDEFAULT, // x-positio aluksi CW_USEDEFAULT, // y-positio aluksi 500, // leveys aluksi 300, // korkeus aluksi NULL, // emoikkunan kahva NULL, // ikkunan valikon kahva NULL // lisätietoja ); // luodaan ikkuna } int CMainWindow::OnCreate (LPCREATESTRUCT lpcs) // lomakkeen luomistapahtuma { m_fontMain.CreateFont (10, 0, 0, 0, FW_NORMAL, 0, 0, 0, DEFAULT_CHARSET, OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "MS Sans Serif"); // fontin luominen CRect rect (10, 10, 482, 266); // luodaan CRect-luokan olio jota käytetään kehyskontrollin luomisessa m_ctlGroupBox.Create ("", WS_CHILD | WS_VISIBLE | BS_GROUPBOX, rect, this, (UINT) -1); // luodaan kehyskontrolli m_ctlGroupBox.SetFont (&m_fontMain, FALSE); // asetetaan kehyskontrollin fontti rect.SetRect (250, 50, 350, 80); // vaihdetaan uudet arvot m_ctlPushButton1.Create ("Tutki ListBox", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, rect, this, (UINT) 1); // luodaan painonappi m_ctlPushButton1.SetFont (&m_fontMain, FALSE); // asetetaan painonapin fontti rect.SetRect (140, 50, 240, 120); // vaihdetaan uudet arvot m_ctlListBox.CreateEx (WS_EX_CLIENTEDGE, "listbox", NULL, WS_CHILD | WS_VISIBLE | LBS_STANDARD, rect.left, rect.top, rect.Width (), rect.Height (), m_hWnd, (HMENU) 2, NULL); // luetteloruutu m_ctlListBox.SetFont (&m_fontMain, FALSE); // asetetaan luetteloruudun fontti m_ctlListBox.AddString ("List 1"); // tekstirivien lisäys m_ctlListBox.AddString ("List 2"); m_ctlListBox.AddString ("List 3"); m_ctlListBox.AddString ("List 4"); m_ctlListBox.AddString ("List 5"); m_ctlListBox.AddString ("List 6"); m_ctlListBox.AddString ("List 7"); m_ctlListBox.AddString ("List 8"); m_ctlListBox.SetSel (0); // tehdään jokin oletusvalinta rect.SetRect (250, 140, 350, 170); // vaihdetaan uudet arvot m_ctlPushButton2.Create ("Tutki Combo", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, rect, this, (UINT) 3); // painonappi m_ctlPushButton2.SetFont (&m_fontMain, FALSE); // asetetaan painonapin fontti rect.SetRect (140, 140, 240, 220); // vaihdetaan uudet arvot m_ctlComboBox.Create (WS_CHILD | WS_VISIBLE | WS_VSCROLL | CBS_SORT | CBS_DROPDOWNLIST, rect, this, (UINT) 4); // yhdistemäluetteloruutu m_ctlComboBox.SetFont (&m_fontMain, FALSE); // asetetaan yhdistemäluetteloruudun fontti m_ctlComboBox.AddString ("Combo 1"); // tekstirivien lisäys m_ctlComboBox.AddString ("Combo 2"); m_ctlComboBox.AddString ("Combo 3"); m_ctlComboBox.AddString ("Combo 4"); m_ctlComboBox.AddString ("Combo 5"); m_ctlComboBox.AddString ("Combo 6"); m_ctlComboBox.AddString ("Combo 7"); m_ctlComboBox.AddString ("Combo 8"); m_ctlComboBox.SetCurSel (0); // tehdään jokin oletusvalinta rect.SetRect (140, 224, 240, 240); // vaihdetaan uudet arvot m_ctlStatic.Create ("Tee valinta", WS_CHILD | WS_VISIBLE | SS_CENTER | SS_SUNKEN, rect, this, (UINT) 5); // luodaan etiketti m_ctlStatic.SetFont (&m_fontMain, FALSE); // asetetaan etiketin fontti return 0; // kaikki hyvin, palautetaan 0 } void CMainWindow::OnButtonListClicked () // Tutki ListBox -nappia painettu { CString valittuteksti; // merkkijonomuuttuja int valitturivi = m_ctlListBox.GetCurSel (); // kysytääm valittu rivi if (valitturivi != LB_ERR) // jos riviä ei ole valittu on valintana LB_ERR m_ctlListBox.GetText (valitturivi, valittuteksti); // haetaan teksti ComboBoxista m_ctlStatic.SetWindowText (valittuteksti); // asetetaan sama teksti Staticiin } void CMainWindow::OnButtonComboClicked () // Tutki Combo -nappia painettu { CString valittuteksti; // merkkijonomuuttuja m_ctlComboBox.GetWindowText (valittuteksti); // haetaan teksti ComboBoxista m_ctlStatic.SetWindowText (valittuteksti); // asetetaan sama teksti Staticiin }