Hvordan lage Message Maps i MFC
En Windows-operativsystemet er melding drevet miljø. En hendelse som et museklikk eller en skriver signal sender en melding til den løpende søknad som i sin tur behandler meldingen. Microsoft Foundation Class (MFC) Library støtter en melding drevet programmering modell. Den sentrale komponenten er Budskapet kart. Her er den OnLButtonDown funksjon håndterer venstre museklikk i CMyWindow klassen.
Bruksanvisning
1 Start Microsoft Visual Studio. For dette eksempel Visual C ++ 6,0 ble anvendt.
2 Lag en Win32 Application prosjekt. Klikk Fil, Ny, prosjekter og deretter "Win32 Application". Skriv inn et navn du ønsker i "Prosjektnavn" tekstboksen. I den andre siden i veiviseren velger du "Et tomt prosjekt". Klikk på Fullfør, og klikk OK. Dette prosjektet har ingen standardfiler.
3 Legg en kilde fil til prosjektet. Klikk Project, "Legg til Project," Ny og velg deretter "C ++ kildefil". Gi filen et navn i "File name" tekstboksen. Klikk på "OK".
4
Kopier og lim inn følgende kode på kildefilen: #inkludere klasse CMyWindow: public CFrameWnd { offentlig: CMyWindow () { Lag (NULL, "MFC Message Map Demo"); } ugyldig OnLButtonDown (UINT flagg, CPek punkt); DECLARE_MESSAGE_MAP () }; BEGIN_MESSAGE_MAP (CMyWindow, CFrameWnd) ON_WM_LBUTTONDOWN () END_MESSAGE_MAP () void CMyWindow :: OnLButtonDown (UINT flagg, CPek punkt) { CFrameWnd :: OnLButtonDown (flagg, punkt); Messagebox ( "Venstre knapp klikket"); } klasse MinApp: public CWinApp { CMyWindow * pMyWin; offentlig: BOOL InitInstance () { pMyWin = new CMyWindow (); m_pMainWnd = pMyWin; m_pMainWnd-> Showwindow (1); returnere en; } }; MyApp theApp; |
5
Forstå hva koden betyr: DECLARE_MESSAGE_MAP: Denne makroen forteller programmet at klassen som inneholder det, i dette tilfellet "CMyWindow", har et kart melding, og kan behandle meldinger. Bare klasser som stammer fra CCmdTarget kan utføre meldings kart. BEGIN_MESSAGE_MAP & END_MESSAGE_MAP: Disse makroene kan betraktes som de åpne lukke bukseseler i en melding kartet. "BEGIN_MESSAGE_MAP" tar to parametre, navnet på klassen som er vert kartet meldingen, i dette tilfellet "CMyWindow", og dens umiddelbare stamfar, "CFrameWnd". ON_WM_LBUTTONDOWN: Dette er en spesialitet makro som angir at CMyWindow håndterer venstre museklikk gjennom funksjonen OnLButtonDown. Når en venstre museklikk er assosiert med CMyWindow den OnLButtonDown klassen kalles automatisk. |
6 Klikk og kjøre programmet. Klikk "Build" på menyen og "Compile program". Vent til den kompilerer. Klikk "Build" og "Execute program".
Hint
- En klasse kan bare ha én melding kartet.