Ich wieder mit meiner Mouse Emulation
-
Hi Leute,
ein Problem gelöst, 10 neue dazugekommen. Meine Emulation funktiert nur im ClientBereich CViewderivat von meinen Programm, im CFrameWnd Bereich bereits rührt sich nichts wenn der Cursor sich darüberbewegt, außer das die Menüpunkte mit dem Rahmen gehighlighted werden. Aber beim Ausführen der performLeftButtonDown() Methode klappt leider das Menü nicht auf. Das einzige was funzt, ist wenn ich auf ein anderes Fenster klicke, das es durch BringWindowToTop(); aktiv wird.
->Mit sendmessage(x,x,x); funzt es auch nicht.
->Mit WM_LBUTTONDOWN & WM_LBUTTONUP funzt es auch nicht.void MouseEmulation::performLeftButtonDown() { CPoint mousePos; mousePos.x=m_nMousePosX; //zuvor berechnete Mouseposition mousePos.y=m_nMousePosY; HWND hWnd; CWnd* window=CWnd::WindowFromPoint(mousePos); window->BringWindowToTop(); hWnd=window->m_hWnd; ::SendMessage(hWnd,WM_LBUTTONDOWN,0,MAKELPARAM(m_nMousePosX,m_nMousePosY)); }Bitte ihr WindowsGötter erhöret mich
euer dw-Inc
-
Hast du es mal mit ChildWindowFromPoint versucht?
-
Geht auch nicht
-
Kann das was vielleicht mit WM_NOTIFY Nachrichten an Steuerelementen zu tun haben????
-
Vielleicht musst Du noch MK_LBUTTON als WPARAM übergeben
-
Geht leider auch nicht garnicht
am Ende wird es wieder irgend ne easy Sache sein, die sich bloß irgendwo tief im monotitischen Win32 SDK versteckt hat.
-
Versuchs mal mit PostMessage oder der Funktion mouse_event
-
Geil mit mouse_event funzt es
danke René