Meine PreTranslateMessage-Funktion reagiert nicht auf CStatic-Objekt
-
Ich erstelle ein CStatic-Objekt inmitten meines Dialogs. Jetzt soll beim Drüberfahren mit dem Mauszeiger
eine MessageBox aufgerufen werden. Allerdings funktioniert meine Abfrage in der PreTranslateFunktion nicht, wenn ich die m_hWnds vergleiche:CStatic static; //das objekt, es ist global vorhanen static.Create(0,WS_VISIBLE|WS_CHILD|SS_BITMAP,rect,this);
Die Funktion:
BOOL CLeDlg::PreTranslateMessage(MSG* pMsg) { if ((pMsg->hwnd == static.m_hWnd)&&(pMsg->message == WM_MOUSEMOVE))//bewirkt nichts { MessageBox("dd,"dd"); } return CDialog::PreTranslateMessage(pMsg); }
Ich denke, dass pMsg->hwnd immer das m_hWnd von meinem Dialog ist... aber warum? Wie krieg ich es hin, dass pMsg->hwnd das hwnd vom CStatic-Objekt ist?
-
Weil das Static-Element standardmässig transparent ist. (antwortet auf WM_NCHITTEST mit HTTRANSPARENT). Setz mal noch SS_NOTIFY.
-
Danke! Funktioniert super!