Nachricht senden.
-
hallo!
ich habe in meinem programm einen button:
#define bt1 1; //... HWND hwndbt; hwndbt = CreateWindow("button", "Senden", WS_CHILD | WS_VISIBLE | ES_LEFT, 480,// X-Koordinate 310,// Y-Koordinate 100,// Breite 30, // Höhe hwnd, (HMENU) bt1, ((LPCREATESTRUCT) lParam)->hInstance, NULL);und eine überprüfung in der nachrichten schleife, ob dieser button gedrückt wurde:
case WM_COMMAND: switch(HIWORD(wParam)) { case BN_CLICKED: switch (LOWORD(wParam)) { case bt1: //... break; } }so jetzt möchte ich selber eine nachricht an das fenster schicken das der button gedrückt wurde.
SendMessage(ghwnd, WM_COMMAND, BN_CLICKED, 0);so geht es nicht weil ja irgendwie noch die button-id in der nachricht fehlt.
also ich hoffe mir kann wer zeigen wie das geht!
-
hwndbtDas ist doch die Button ID oder :P?
-
eigendlich dachte ich das hwndbt das handle auf den button ist und die id ist bt1.
-
N1dda schrieb:
so jetzt möchte ich selber eine nachricht an das fenster schicken das der button gedrückt wurde.
SendMessage(ghwnd, WM_COMMAND, BN_CLICKED, 0);die button-id gehört in den lParam. also
SendMessage(ghwnd, WM_COMMAND, (WPARAM)BN_CLICKED, (LPARAM)bt1);
-
danke,
das funktioniert.allerdings nur wenn ich
case BN_CLICKED: switch (LOWORD(wParam))in
case BN_CLICKED: switch (lParam))ändere.
-
dann überleg mal warum... weil die die ID, die du dann in der Case hast ja an den LPARAM übergeben hast... nicht an den WPARAM -.-
-
das ist mir schon klar.
aber ich überprüfe ja ob
HIWORD(wParam) == BN_CLICKED und
LOWORD(wParam) == BT1und ich weiß nich wie ich LOWORD und HIWORD wParam in eine SendMessage bekomme.
-
-
alles klar danke,
habs jetzt so gemacht:SendMessage(ghwnd, WM_COMMAND, MAKEWPARAM(bt1,BN_CLICKED), 0);
-
mist! hab mich in in der psdk verlesen. stimmt schon, was die anderen geschrieben haben. du solltest nur noch als lparam das button-fenster-handle ubergeben:
SendMessage(ghwnd, WM_COMMAND, MAKEWPARAM(bt1,BN_CLICKED), (LPARAM)hwndbt);die ganzen notification-codes kannst du auch in der psdk oder im msdn nachlesen. einfach nach BN_CLICKED suchen.
-
jo danke an alle!
@Konfusius: warum soll ich den lParam auch mitschicken?
stört zwar wahrscheinlich nich, aber ich hab ja auch kein case was auf lParam prüft.und ich hab noch ne andere frage und schreib es einfach mal hier rein:
wie kann ich überprüfen ob meine anwendung also das fenster den fokus hat und nich minimiert oder von anderen fenstern überdeckt ist?