Wie kann ich auf ein mausklick eines eigenen CWnd Objekts reagieren?
-
ok gute idee.. nun ist die frage wie ich das mache.. habe ja ne message map, und schreib da warhscehinlich ON_WM_LBUTTONDOWN und weiter?? muss ja ne afx_msg funktion dafür haben wo er bei dem ereigenis reinspringt wie mach ich das?
-
Diese Handler-Funktion hat die CWnd schon definiert, du mußt sie nur noch überschreiben und mit Inhalt füllen. Die korrekte Signatur lautet:
afx_msg void OnLButtonDown(UINT flags, CPoint pos);(flags gibt an, welche Steuer- und Maustasten bei der Aktion gedrückt waren, pos ist der Ort, wo sich die Maus befunden hat (realtiv zum eigenen Fenster))
-
ok super danke:)
P.S: d.h. die positon von CWnd Fenster obere linke ecke aus, oder vom dialog aus?
-
Afaik von der Ecke des CWnd aus (aber um ganz sicher zu gehen, solltest du mal deinen Debugger fragen).
-
ok das programm läuft, allerding springt er nich beim nem links klick in die funktion:
BEGIN_MESSAGE_MAP(CWorkflowGraphic, CWnd) ON_WM_LBUTTONDOWN() END_MESSAGE_MAP() void CWorkflowGraphic::OnLButtonDown(UINT flags, CPoint pos){ //this->SoetDlgItemText(this,"TEST); CString str; str.AppendFormat("Maus Pos (x:%i ,y:%i)", pos.x,pos.y); AfxMessageBox(str); }was mach ich noch falsch??
ich will lediglich später ein dilaog öffen wenn der mauszeiger über der CWnd Objekt ist und diese dialog ist von der positon abhaängig...
-
keine ne IDEE

-
Die Mausaktionen beziehen sich immer nur auf die entsprechende Client Area nicth den gesamten Dialog!
BTW: Du brauchst nicht brüllen. Ich bin zwar hier regelmässig aber im Allgemeinen arbeite ich auch noch nebenbei... :xmas1:
-
naja ich klicke ja nur in das CWnd Objekt.. also im bereich des CRects welches ich in "Create" übergebe....
Haja Martin, du bist halt nunmal der checker hier...;) Allwissender:)
-
Hast du denn DECLARE_MESSAGE_MAP und IMPLEMENT_MESSAGE_MAP auch wo stehen? Wenn nicht, dann mach mal.
-
aha das IMPLEMENT.... da muss ich mal schaun;)
-
DECLARE hab ich , aber IMPLEMENT Nicht.. aber in meinen anderen Dialogen steht auch nirgens was von IMPLEMENT oder das ein sonderfall???