將WM_MOUSEMOVE消息發送到應用程序的客戶區(在本例中爲Open Office Writer)時,圖像將閃爍,就好像鼠標位於指定的座標上一樣,但不會保持該狀態。的代碼是:SendMessage WM_MOUSEMOVE不能正常工作
PostMessage的(hWndClient,WM_MOUSEMOVE,0,MAKEWORD(X,Y))
其中x和y是相對於客戶區。
在循環中發送它仍然不起作用,因爲鼠標懸停事件突出顯示的區域將閃爍。
任何幫助,將不勝感激。
將WM_MOUSEMOVE消息發送到應用程序的客戶區(在本例中爲Open Office Writer)時,圖像將閃爍,就好像鼠標位於指定的座標上一樣,但不會保持該狀態。的代碼是:SendMessage WM_MOUSEMOVE不能正常工作
PostMessage的(hWndClient,WM_MOUSEMOVE,0,MAKEWORD(X,Y))
其中x和y是相對於客戶區。
在循環中發送它仍然不起作用,因爲鼠標懸停事件突出顯示的區域將閃爍。
任何幫助,將不勝感激。
該應用程序可能觸發各種其他事件。也許它想看WM_MOUSEHOVER等等......這已經很長時間了,但我記得那裏有一些關於如何實現這些事件的東西 - 就像有一個單獨的線程輪詢鼠標並在鼠標生成WM_MOUSELEAVE事件時不再是窗口。你也可能會被類似的東西咬傷。當接收事件時,應用程序本身也可能輪詢鼠標的真實位置。
根據你想要做的事情,也許你可以通過編程的方式移動鼠標,而不是僅僅試圖僞造事件。不幸的是,我不記得這個API,但我相信這是可能的。
你說得對,應用程序在WM_MOUSEMOVE消息後調用GetWindowPos。 – ckg 2010-10-22 04:50:49
我用某事像這樣在我的主窗口,並期待幫助...在WM_MOUSEMOVE:
POINT Point;
GetCursorPos(&Point);
ScreenToClient(hHwnd, &Point);
int X = Point.x;
int Y = Point.y;
你試圖通過發送'WM_MOUSEMOVE'打開Office作家來完成什麼目標? – 2010-10-22 01:36:56
這是一種多用戶VNC類的事情,所以移動光標使用SetCursorPos或什麼你不會不幸的工作。 – ckg 2010-10-22 01:49:03
你是否設法讓它工作?我自動化的一個控件在懸停之前無法工作,所以我需要說服程序使用Windows消息來懸停按鈕。 – 2015-03-16 01:48:43