MFC laajempipohja
Mureakuha
Kaikkein käyttökelpoisin MFC-ohjelma josta on helppo jatkaa eteenpäin:
[muokkaa]
pohjaex.h
class CMyApp : public CWinApp // CMyApp periytetään MFC:n ohjelma-yliluokasta { public: // aliohjelmajäsenten esittely virtual BOOL InitInstance (); // ohjelman instanssin initialisaatio }; class CMainWindow : public CWnd // CMainWindow periytetään MFC:n ikkuna-yliluokasta { private: // tietojäsenten esittely CFont m_fontMain; // fontti CButton m_ctlGroupBox; // kehyskontrolli public: // aliohjelmajäsenten esittely CMainWindow (); // ikkunan luontialiohjelma protected: // aliohjelmajäsenten esittely afx_msg int OnCreate (); // initialisaatio afx_msg void OnPaint (); // piirto afx_msg void OnSize (UINT, int, int); // koonmuutos DECLARE_MESSAGE_MAP () // MESSAGE MAP:n esittely };
[muokkaa]
pohjaex.cpp
#include <afxwin.h> #include "pohjaex.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_PAINT () // lomakkeen piirtäminen ON_WM_SIZE () // lomakkeen koon muutos END_MESSAGE_MAP () CMainWindow::CMainWindow () { CString strWndClass = AfxRegisterWndClass ( NULL, // lomakkeen tyyli myApp.LoadStandardCursor (IDC_ARROW), // lomakkeen kursori (HBRUSH) COLOR_WINDOW, // ikkunan taustan väri myApp.LoadStandardIcon (IDI_APPLICATION) // lomakkeen ikoni ); // rekisteröi ikkunaluokan CreateEx ( NULL, // lomakkeen lisätyyli strWndClass, // lomakkeen ikkunaluokka "OmaOhjelma", // lomakkeen otsikko WS_OVERLAPPEDWINDOW, // lomakkeen tyyli CW_USEDEFAULT, // aloitus x-positio CW_USEDEFAULT, // aloitus y-positio CW_USEDEFAULT, // alkuleveys CW_USEDEFAULT, // alkukorkeus NULL, // emoikkunan kahva NULL, // lomakkeen valikon kahva NULL // lisätietoja ); // lomakkeen luominen } int CMainWindow::OnCreate () // lomakkeen initialisaatio { 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"); // fontti CRect rect (10, 10, 482, 266); // suorakaiteen koordinaatit m_ctlGroupBox.Create ("Oma ohjelma", WS_CHILD | WS_VISIBLE | BS_GROUPBOX, rect, this, 0); // kehyskontrolli m_ctlGroupBox.SetFont (&m_fontMain, FALSE); // asettaa kehyskontrollin fontin return 0; // kaikki hyvin, 0 palautuu } void CMainWindow::OnPaint () // lomakkeen piirto { CPaintDC dc (this); // luo piirtopintaolion } void CMainWindow::OnSize (UINT tyyli, int cx, int cy) // lomakkeen koonmuutos { m_ctlGroupBox.MoveWindow (10, 10, cx-20, cy-20, TRUE); // siirtää kehyskontrollin }
Tulos:
Lisäykset:
- Lomakkeella on oikea taustaväri
- Ohjelma osaa käyttää oikeaa systeemifonttia
- Lomakkeelle piirretään kehyskontrolli
- Lomaketta voi suurentaa ja pienentää ja WM_SIZE sanoma skaalaa kehyksen sitä mukaa
Tämän dokumentin kopiointi, levittäminen sekä muokkaaminen on sallittua GNU Free Documentation Licensen version 1.2 tai uudemman Free Software Foundationin julkaiseman version mukaisesti, ilman muuttumattomuuslauseketta tai kansitekstejä. Tätä koskee vastuuvapaus.
Kopio lisenssistä (englanniksi) löytyy täältä.
Kopio lisenssistä (englanniksi) löytyy täältä.
Alkuperäinen (c) Petteri Hämäläinen
