我正在製作遊戲窗口中的「拖動」動作。我想要在一個地方mouse_down,然後mouse_up另一個地方。僅當移動鼠標時,SendMessage模擬操作才起作用。有沒有辦法解決這個問題?
這裏的C#代碼:
uint Iparm = makeDWord((ushort)x, (ushort)y);
IntPtr xd = new IntPtr(Iparm);
uint Iparm2 = makeDWord((ushort)x2, (ushort)y2);
IntPtr xd2 = new IntPtr(Iparm2);
SendMessage(p, (uint)0x201, (IntPtr)0x1, xd); // down button (start x,y)
SendMessage(p, (uint)0x202, (IntPtr)0x0, xd2); // up button (final x,y)
我已經連接了按鈕的代碼在C#的形式(可以說按鈕和一個名爲START)。當我按START並繼續移動鼠標時,它完美地工作。但是當我只按START並等待操作(不移動光標在屏幕上)時,什麼都不會發生。我用spy ++檢查了遊戲窗口,同時按下了我的表單中的按鈕,兩種推動按鈕的方式(移動/不移動光標)沒有區別。
我忘了補充一點,而移動光標,行動發生,即使是最小化的窗口位置(什麼是非常酷)
是什麼導致我的問題? :P
編輯:
WM_MOUSEDOWN = 0x201;
WM_MOUSEUP = 0x202;
該代碼被放置在一個功能中,p是窗處理,按鈕START執行該功能。
正如我以前說過,而我移動光標
請原諒我沒有記住所有的Windows消息。什麼是0x201和0x202?那些WM_MOUSEDOWN和WM_MOUSEUP?另外,你的程序中的代碼在哪裏?它在你的開始按鈕的按鈕處理程序中嗎?多一點上下文會有所幫助。 –
編輯您需要的信息:P – Patryk