Datatype Misalignment
-
Hallo,
ich habe folgendes Problem:
ich versuche folgende Nachricht zu versenden:mycombobox->GetParent()->PostMessage(WM_COMMAND, mycombobox->GetDlgCtrlID(),CBN_SELCHANGE);aber zur Laufzeit gibts folgende Meldung:
"Datatype Misalignment"Was mache ich falsch ?
Viele Grüsse
lukesky22
-
luckyluke24 schrieb:
Was mache ich falsch ?
Kommt drauf an, was du damit erreichen willst. So ist das jedenfalls Quatsch. Schau dir in der MSDN Library nochmal an, wie die Parameter bei WM_COMMAND aussehen.
-
Ich mache bereits weiter oben in meinem Code folgendes:
mybutton->GetParent()->PostMessage(WM_COMMAND, mybutton->GetDlgCtrlID(),BN_CLICKED);Das funktioniert einwandfrei.
Ich möchte an die CComboBox mycombobox die Nachricht verschicken "CBN_SELCHANGE"!
-
luckyluke24 schrieb:
Das funktioniert einwandfrei.
Vermutlich nur, weil BN_CLICKED zufällig 0 ist.
-
Ich habe folgendes geändert:
mycombobox->GetParent()->PostMessage(WM_COMMAND, MAKEWPARAM(mycombobox->GetDlgCtrlID(),CBN_SELCHANGE));diesmal kommt zur Laufzeit keine Fehlermeldung, aber der entsprechende Handler wird nicht aufgerufen!
-
Meine Güte. Schau doch bitte mal in die MSDN Library, statt rumzufrickeln.
- Der LPARAM bei WM_COMMAND ist ein Handle auf das Steuerelement.
- Der Benachrichtigungscode kommt ins High-Order Word des WPARAM.
-
Wie MFK sagte, lies einmal in der MSDN! Und noch als Tipp, schau genau hin und schau auch auf das High-Order und das Low-Order. Bzw. such dann vielleicht auch mal weiter nach MAKEWPARAM und MAKELPARAM.
Grüssli
-
mycombobox->GetParent()->PostMessage(WM_COMMAND, MAKEWPARAM(mycombobox->GetDlgCtrlID(),CBN_SELCHANGE),(LPARAM)mycombobox->m_hWnd);So funktionierts! Hat doch nur das LPARAM gefehlt.
Mich wunders nur dass es beim Button ohne das LPARAM funktioniert!Vielen Dank
Gruss
lukesky