Przekazywanie Komunikatów
· zdarzenie ( event )
· komunikat ( message )
· funkcja obsługi ( handler )
· podział komunikatów WM_XXX
· komunikaty okien
· notyfikacje sterujące
· komendy WM_COMMAND
· identyfikatory komunikatów ® stałe typu UINT
WM_KEYDOWN ID_DATA_ERASE_ALL = 31848
Zdarzenie ® wybór pozycji menu
Data / Erase All
Komenda ® identyfikator
ID_DATA_ERASE_ALL
Obiekt ® znajdowany jest obiekt klasy
zawierającej funkcję obsługi
obsługi
Funkcja ® wywoływana jest funkcja
OnDataEraseAll()
Operacja ® usuwanie
wartości danych
Poziom
Odbiorca
Przekazuje do
A
okno główne MDI
B
okno główne SDI
okno potomne MDI
C
widok
D
dokument
E
okno dialogowe
Mapy Komunikatów
plik.h
DECLARE_MESSAGE_MAP ()
// makro deklarujące mapę
// na końcu deklaracji klasy
plik.cpp
BEGIN_MESSAGE_MAP ( NazwaKlasy,
NazwaKlasyBazowej )
//{{ AFX_MSG_MAP ( NazwaKlasy )
< makrokomendy odwzorowujące >
// }} AFX_MSG_MAP
END_MESSAGE_MAP ( )
· rodzaje makroinstrukcji odwzorowujących :
· ON_WM_XXX( )® XXX nazwa komunikatu okna,
np. ON_WM_LBUTTONDOWN ( ), funkcje obsługi
mają ustalone identyfikatory np.
OnLButtonDown ( ), definicje w afxwin.h
· ON_COMMAND ( ID_XXX , IdentyfikatorFunkcji )
ON_UPDATE_COMMAND_UI ( ID_XXX,
IdentyfikatorFunkcji )
ON_BN_CLICKED ( ID_XXX , IdentyfikatorFunkcji )
ON_MESSAGE ( WM_XXX , IdentyfikatorFunkcji )
ON_REGISTERED_MESSAGE ( WM_XXX ,
IdentyfikatorFunkcji)
· przykłady :
ON_WM_LBUTTONDBLCLK ( )
ON_WM_KILLFOCUS ( )
ON_COMMAND ( ID_FILE_NEW , OnFileNew )
ON_COMMAND ( ID_DATA_ERASE_ALL,
OnEraseAll )
ON_UPDATE_COMMAND_UI ( ID_EDIT_CUT ,
OnUpdateEditCut )
ON_BN_CLICKED ( ID_BUTTON_DELETE ,
OnButtonDelete )
ON_MESSAGE (WM_MY_MESSAGE_DISPAY ,
OnDisplay )
ON_REGISTERED_MESSAGE ( WM_MESSAGE_SHOW,
OnShow )
Definiowanie własnych komunikatów
· #define WM_MESSAGE_SHOW WM_USER + 257
· UINT RegisterWindowMessage
(LPCSTR lpString)
· wynik® < 39936 , 65535 > ( < 0xC000 , 0xFFFF >)
· przykład :
UINT WM_MESSAGE_SHOW =
RegisterWindowMessage ( ”ShowMessage” );
Wysyłanie komunikatów
· przez środowisko po wystąpieniu zdarzenia
· przez program
LRESULT SendMessage ( .. ) ;
BOOL PostMessage ( .. ) ;
Funkcja O_Y
Funkcja O_X
. . . . . . . . . . . . . . . . .
SendMessage ( ,Y, )
. . . . . . . . . . . . . . . .
...
webss