|
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
};
#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
|