Hallo,
ich arbeite mich seit einigen Tagen in die Windows-Programmierung mit Visual C++ 6.0 ein.
Dazu hätte ich mal eine Veständnisfrage zu folgendem Szenario:
Also, ich habe ein Fenster, in dem sich ein Button „OK“ befindet.
Der Anwender klickt auf den Button. Wie läuft das jetzt mit den Nachrichten ab?
Ich erkläre mir das folgendermaßen im Falle eines Mausklicks auf den Button:
- Windows ruft die Fensterprozedur des Buttons (ein Button ist doch ein Fenster?) direkt auf und übergibt das Event LBUTTON_DOWN (o. ä.).
- Der Button ruft eine ensprechende Methode seiner Basisklasse auf, die einen entsprechenden optischen Eindrückeffekt erzeugt.
- Das gleiche passiert dann mit LBUTTON_UP.
- Dann ruft Windows wieder direkt die Fensterprozedur des Buttons auf und übergibt eine BN_CLICKED Event.
- Die Methode der Basisklasse des Buttons sendet eine Nachricht an Windows und übergibt als Parameter den handle des Elternfensters und das Event BN_CLICKED.
- Windows reiht diese Nachricht in die Warteschlange der Anwendung ein.
Stimmt das denn bis hierher?
Ab jetzt weiß ich nicht mehr wie es weitergeht. Wird jetzt die Fensterprozedur des Fensters, in dem sich der Button befindet, aufgerufen? Woher weiß aber das Fenster (wenn es mehrere Buttons hat), welcher der Buttons gedrückt wurde?
Über eine Erklärung / Richtigstellung würde ich mich sehr freuen?
Danke & Gruß
Mac