Un sistema operativo Windows è basato sui messaggi ambiente. Un evento come un clic del mouse o un segnale di stampante Invia un messaggio per l'applicazione in esecuzione che a sua volta gestisce il messaggio. La libreria Microsoft Foundation Class (MFC) supporta un messaggio determinato modello di programmazione. Il suo componente centrale è la mappa dei messaggi. Qui, il OnLButtonDown funzione maniglie sinistro clic del mouse nella classe CMyWindow.
Istruzioni
1
Avviare Microsoft Visual Studio. Per questo esempio è stato utilizzato Visual c + + 6.0.
2
Creare un progetto di applicazione Win32. Fare clic su File, nuovo, progetti e quindi "Applicazione Win32". Immettere il nome desiderato nella casella di testo "Nome progetto". Nella seconda pagina della procedura guidata selezionare "Un progetto vuoto". Fare clic su fine e fare clic su OK. Questo progetto non ha nessun file predefinito.
3
Aggiungere un file sorgente al progetto. Fare clic su progetto, "Aggiungi al progetto" New e selezionare "File di origine C++". Assegnare al file un nome nella casella di testo "Nome File". Fare clic su "OK".
4
Copiare e incollare il codice seguente nel file di origine:
#include Classe CMyWindow: pubblico CFrameWnd { pubblico: CMyWindow() { Creare (NULL, "MFC messaggio mappa Demo"); } void OnLButtonDown (UINT flags, punto CPoint); DECLARE_MESSAGE_MAP() }; BEGIN_MESSAGE_MAP (CMyWindow, CFrameWnd) ON_WM_LBUTTONDOWN() END_MESSAGE_MAP() Sub CMyWindow::OnLButtonDown (UINT flags, punto CPoint) { CFrameWnd::OnLButtonDown (bandiere, punto); MessageBox ("Left Button clicked"); } Classe MyApp: pubblico CWinApp { CMyWindow * pMyWin; pubblico: InitInstance () As Boolean { pMyWin = nuovo CMyWindow(); m_pMainWnd = pMyWin; m_pMainWnd -> ShowWindow(1); return 1; } }; MyApp theApp; |
5
Capire che cosa significa il codice:
DECLARE_MESSAGE_MAP: Questa macro indica l'applicazione che la classe che contiene, in questo caso "CMyWindow", ha una mappa messaggi e può gestire i messaggi. Solo le classi derivate da CCmdTarget possono eseguire mappe messaggi. BEGIN_MESSAGE_MAP ed END_MESSAGE_MAP: Queste macro possono essere pensate come l'aperte graffe stretta di una mappa messaggi. "BEGIN_MESSAGE_MAP" accetta due parametri, il nome della classe che ospita la mappa messaggi, in questo caso "CMyWindow", e il suo immediato predecessore, "CFrameWnd". ON_WM_LBUTTONDOWN: Questa è la macro di specialità che specifica che CMyWindow maniglie sinistro del mouse click attraverso la funzione OnLButtonDown. Quando un sinistro del mouse è associato con CMyWindow classe OnLButtonDown viene chiamata automaticamente. |
6
Scegliere ed eseguire il programma. Fare clic su "Build" del menu e "Compilare Nome_programma". Attendere che venga compilata. Fare clic su "Build" e "Eseguire Nome_programma".
Consigli & Avvertenze
- Una classe può avere solo una mappa messaggi.