//*********************************************************************** // // valuutta.cpp // //*********************************************************************** #include #include "valuutta.h" CMyApp myApp; ///////////////////////////////////////////////////////////////////////// // CMyApp luokan aliohjelmien toteutus BOOL CMyApp::InitInstance () { m_pMainWnd = new CMainWindow; m_pMainWnd->ShowWindow (m_nCmdShow); m_pMainWnd->UpdateWindow (); return TRUE; } ///////////////////////////////////////////////////////////////////////// // CMainWindow luokan aliohjelmien toteutus BEGIN_MESSAGE_MAP (CMainWindow, CWnd) ON_WM_CREATE () // lomakkeen luominen ON_WM_SIZE () // lomakkeen koon muutos ON_BN_CLICKED (1, OnButton1Clicked) // '-->'-nappia painetaan ON_BN_CLICKED (2, OnButton2Clicked) // '<--'-nappia painetaan END_MESSAGE_MAP () 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öi oman ikkunaluokan CreateEx ( NULL, // lomakkeen lisätyyli strWndClass, // lomakkeen ikkunaluokka "Valuutta", // lomakkeen otsikko WS_OVERLAPPEDWINDOW, // ikkunan tyyli CW_USEDEFAULT, // aloitus x-positio CW_USEDEFAULT, // aloitus y-positio 500, // alkuleveys 300, // alkukorkeus NULL, // emoikkunan kahva NULL, // lomakkeen valikon kahva NULL // lisätietoja ); // lomakkeen luominen } int CMainWindow::OnCreate () // 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 m_Kurssit[0][0] = 1.00; // valuuttakurssit m_Kurssit[0][1] = 0.18; m_Kurssit[0][2] = 0.16; m_Kurssit[1][0] = 5.50; m_Kurssit[1][1] = 1.00; m_Kurssit[1][2] = 0.89; m_Kurssit[2][0] = 6.20; m_Kurssit[2][1] = 1.13; m_Kurssit[2][2] = 1.00; CRect rect; m_ctlButton1.Create ("-->", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, rect, this, (UINT) 1); // painonappi m_ctlButton1.SetFont (&m_fontMain, FALSE); m_ctlButton2.Create ("<--", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, rect, this, (UINT) 2); // painonappi m_ctlButton2.SetFont (&m_fontMain, FALSE); m_ctlGroupBoxV1.Create ("Valuutta 1", WS_CHILD | WS_VISIBLE | BS_GROUPBOX, rect, this, 3); // kehyskontrolli m_ctlGroupBoxV1.SetFont (&m_fontMain, FALSE); m_ctlEdit1.CreateEx (WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD | WS_VISIBLE | ES_AUTOHSCROLL, 0, 0, 0, 0, m_hWnd, (HMENU) 4); // muokkausruudun m_ctlEdit1.SetFont (&m_fontMain, FALSE); m_ctlRadio1V1.Create ("Markka", WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON | WS_GROUP, rect, this, (UINT) 5); // valintanappikontrolli m_ctlRadio1V1.SetFont (&m_fontMain, FALSE); m_ctlRadio1V1.SetCheck (BST_CHECKED); m_ctlRadio2V1.Create ("Dollari", WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, rect, this, (UINT) 6); // valintanappikontrolli m_ctlRadio2V1.SetFont (&m_fontMain, FALSE); m_ctlRadio3V1.Create ("Ecu", WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, rect, this, (UINT) 7); // valintanappikontrolli m_ctlRadio3V1.SetFont (&m_fontMain, FALSE); m_ctlGroupBoxV2.Create ("Valuutta 2", WS_CHILD | WS_VISIBLE | BS_GROUPBOX, rect, this, 8); // luo kehyskontrolli m_ctlGroupBoxV2.SetFont (&m_fontMain, FALSE); m_ctlEdit2.CreateEx (WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD | WS_VISIBLE | ES_AUTOHSCROLL, 0, 0, 0, 0, m_hWnd, (HMENU) 9); // muokkausruudun m_ctlEdit2.SetFont (&m_fontMain, FALSE); m_ctlRadio1V2.Create ("Markka", WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON | WS_GROUP, rect, this, (UINT) 10); // valintanappikontrolli m_ctlRadio1V2.SetFont (&m_fontMain, FALSE); m_ctlRadio1V2.SetCheck (BST_CHECKED); m_ctlRadio2V2.Create ("Dollari", WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, rect, this, (UINT) 11); // valintanappikontrolli m_ctlRadio2V2.SetFont (&m_fontMain, FALSE); m_ctlRadio3V2.Create ("Ecu", WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, rect, this, (UINT) 12); // valintanappikontrolli m_ctlRadio3V2.SetFont (&m_fontMain, FALSE); return 0; // kaikki hyvin, 0 palautuu } void CMainWindow::OnSize (UINT tyyli, int cx, int cy) // lomakkeen koonmuutostapahtuma { m_ctlButton1.MoveWindow (cx/2 - 20, int(cy * 0.50-40), 40, 40, TRUE) ; // siirtää kontrollin oikeaan paikkaan, int(...) on jotta ei saada varoitusta m_ctlButton2.MoveWindow (cx/2 - 20, int(cy * 0.50), 40, 40, TRUE) ; m_ctlGroupBoxV1.MoveWindow (10, 10, cx/2 - 40, cy - 20, TRUE) ; m_ctlEdit1.MoveWindow (20, int(cy * 0.2), cx/2 - 60, 19, TRUE) ; m_ctlRadio1V1.MoveWindow (30, int(cy * 0.4), cx/2 - 80, 14, TRUE) ; m_ctlRadio2V1.MoveWindow (30, int(cy * 0.6), cx/2 - 80, 14, TRUE) ; m_ctlRadio3V1.MoveWindow (30, int(cy * 0.8), cx/2 - 80, 14, TRUE) ; m_ctlGroupBoxV2.MoveWindow (cx/2 + 31, 10, cx/2 - 40, cy - 20, TRUE) ; m_ctlEdit2.MoveWindow (cx/2 + 43, int(cy * 0.2), cx/2 - 60, 19, TRUE) ; m_ctlRadio1V2.MoveWindow (cx/2 + 53, int(cy * 0.4), cx/2 - 80, 14, TRUE) ; m_ctlRadio2V2.MoveWindow (cx/2 + 53, int(cy * 0.6), cx/2 - 80, 14, TRUE) ; m_ctlRadio3V2.MoveWindow (cx/2 + 53, int(cy * 0.8), cx/2 - 80, 14, TRUE) ; } void CMainWindow::OnButton1Clicked () // '-->'-nappi { long Valuutta1, Valuutta2 ; // 0=Markka, 1=Dollari, 2=Ecu char bufferi[10] ; if (m_ctlRadio1V1.GetCheck () != 0) Valuutta1 = 0 ; // Onko Autoradio1V1 päällä? else if (m_ctlRadio2V1.GetCheck () != 0) Valuutta1 = 1 ; // Onko Autoradio2V1 päällä? else if (m_ctlRadio3V1.GetCheck () != 0) Valuutta1 = 2 ; // Onko Autoradio3V1 päällä? if (m_ctlRadio1V2.GetCheck() != 0) Valuutta2 = 0 ; // Onko Autoradio1V2 päällä? else if (m_ctlRadio2V2.GetCheck () != 0) Valuutta2 = 1 ; // Onko Autoradio2V2 päällä? else if (m_ctlRadio3V2.GetCheck () != 0) Valuutta2 = 2 ; // Onko Autoradio3V2 päällä? m_ctlEdit1.GetWindowText (bufferi, 10) ; // Luetaan Edit1 teksti long luku = atol(bufferi) ; // Muunnetaan se numeroksi if (luku <= 0 ) MessageBox ("Syötetty arvo ei ole muunnettavissa!", "Virhe", MB_OK | MB_SYSTEMMODAL) ; // Jos muunnos ei onnistunut luku = long(luku * m_Kurssit[Valuutta1][Valuutta2]) ; // Kerrotaan oikealla kurssilla, long(...) on jotta ei saada varoitusta ltoa(luku, bufferi, 10) ; // Muunnetaan numero tekstiksi m_ctlEdit2.SetWindowText (bufferi) ; // Kirjoitetaan teksit Edit2:n } void CMainWindow::OnButton2Clicked () // '<--'-nappi { long Valuutta1, Valuutta2 ; // 0=Markka, 1=Dollari, 2=Ecu char bufferi[10] ; if (m_ctlRadio1V1.GetCheck () != 0) Valuutta1 = 0 ; // Onko Autoradio1V1 päällä? else if (m_ctlRadio2V1.GetCheck () != 0) Valuutta1 = 1 ; // Onko Autoradio2V1 päällä? else if (m_ctlRadio3V1.GetCheck () != 0) Valuutta1 = 2 ; // Onko Autoradio3V1 päällä? if (m_ctlRadio1V2.GetCheck() != 0) Valuutta2 = 0 ; // Onko Autoradio1V2 päällä? else if (m_ctlRadio2V2.GetCheck () != 0) Valuutta2 = 1 ; // Onko Autoradio2V2 päällä? else if (m_ctlRadio3V2.GetCheck () != 0) Valuutta2 = 2 ; // Onko Autoradio3V2 päällä? m_ctlEdit2.GetWindowText (bufferi, 10) ; long luku = atol(bufferi) ; if (luku <= 0) MessageBox ("Syötetty arvo ei ole muunnettavissa!", "Virhe", MB_OK | MB_SYSTEMMODAL) ; luku = long(luku * m_Kurssit[Valuutta2][Valuutta1]) ; // long(...) on jotta ei saada varoitusta ltoa(luku, bufferi, 10) ; m_ctlEdit1.SetWindowText (bufferi) ; }