ON_COMMAND filtern
-
Hallo,
kann mir jemand beim Filtern der ON_COMMAND helfen (Code wäre schön).
Und zwar soll die Nachricht BN_CLICKED gefiltert werden und die Kennung des Conrols welches die Nachricht gesendet hat.
Steht glaube ich im wParam. Aber in der MSDN ist von low-order und high-order die Rede, was ist das?
Danke,
Turbobrain
-
Hallo turbobrain,
haste denn meinen Beitrag http://www.c-plusplus.net/forum/viewtopic.php?t=52179 nicht gelesen?

Also der wParam ist zwar vom Typ WPARAM, aber eigentlich auch nur ein DWORD (double word), also eine 4Byte Zahl. Ein WORD hat nur 2 Bytes. Ein low-order word 'xlow' eines DWORD 'x' sind nun die 2 Bytes mit den nidrigsten 2er Potenzen im Koeffizienten als WORD gelesen. Beim hi-order word 'xhi' sind das gerade die 2 Bytes mit den höchsten 2er Potenzen im Koeffizienten.
Also wenn x = 256^3*a + 256^2*b + 256^1*c + d. Dann ist xlow = 256^1*c + d und xhi = 256^1*a + b;
Gruss mathi
-
Tag Mathi,
Natürlich habe ich ihn gelesen und dank dir habe ich von dieser Möglichkeit erfahren. Doch wie muss denn der Code in der If-Abfrage aussehen ?
Sag es mir bitte.
-
Hallo,
ich hätte mir das in etwa so gedacht:
WORD buttonID = LOWORD(wParam); WORD msg = HIWORD(wParam); if (msg == BN_CLICKED) { switch(buttonID) { case IDC_BUTTON1 : TRACE("-->Funktionen für Button 1\n"); break; case IDC_BUTTON2 : TRACE("-->Funktionen für Button 2\n"); break; // ... default : TRACE("-->Funktionen für alle anderen Button\n"); } }Gruss mathi
-
Danke,
ich werde es ausprobieren!!
Turbobrain