Mausstatus abfragen



  • Hi Leute,

    ich will einen kleinen Hilfetext in einem Static ausgeben, wenn der Benutzer mit dem Mauszeiger über eine Checkbox fährt. Diese soll so lange da stehen, bis der Mauszeiger die Checkbox wieder verlassen hat. Ihr wisst bestimmt was ich meine... Nur leider weiß ich nicht, wie ich das realisieren soll.
    Hat von euch schon jemand ein ähnliches "Problem"? Sieht man ja eigentlich relativ oft.



  • in etwa so ungetestet

    void MyDlg::OnMouseMove(UINT nFlags, CPoint point){
    
    	CDialog::OnMouseMove(nFlags, point);
    
    	CRect rect;
    	CRgn WndRgn;
    
    	(GetDlgItem(IDC_....))->GetWindowRect(&rect);
    	this->ScreenToClient(&rect);
    
    	WndRgn.CreateRectRgn(rect1.TopLeft().x , rect1.TopLeft().y , rect1.BottomDown().x, rect1.BottomDown().y);
    	if(WndRgn.PtInRegion(point))AfxMessageBox("drin");
    }
    


  • ähhh, ich denke das mit der messagebox iss etwas blödsinn, ich denke er mein sicher tooltipse ! (siehe msdn)



  • Das ist schon richtig. So meinte ich es. Das mt der MessageBox muss man zwar ändern, aber sonst passt das schon. :p

    Thx. 😃



  • Hallo, hab mich leider zu früh gefreut. Der Code funktioniert leider nicht ganz. Wenn ich eingebe

    WndRgn.CreateRectRgn(rect.TopLeft().y, rect.TopLeft().x, rect.BottomRight().y, rect.BottomRight().x);
    

    dann wird zwar ein rechteck auf meinem Dialog erstellt, aber an der falschen Stelle. Alle anderen Versuche sind fehlgeschlagen, d.h. die MessageBox wurde nirgendwo ausgegeben.

    Könnt ihr mir sagen, welche Koordinaten ich übergeben muss, bzw. was ich falsch mache?


Anmelden zum Antworten