2 回答

TA貢獻1993條經(jīng)驗 獲得超6個贊
[DllImport("user32.dll")]
static extern void mouse_event(MouseEventFlag flags, int dx, int dy, uint data, UIntPtr extraInfo);
上邊是一個外部方法;
使用mouse_event時屏幕絕對坐標(biāo)如何計算
[DllImport("user32", EntryPoint="mouse_event")]
public static extern void mouse_event (
int dwFlags,
int dx,
int dy,
int cButtons,
int dwExtraInfo
);
MOOSE_EVENTF_ABSOLOTE:表明參數(shù)dX,dy含有規(guī)范化的絕對坐標(biāo)。如果不設(shè)置此位,參數(shù)含有相對數(shù)據(jù):相對于上次位置的改動位置。此標(biāo)志可被設(shè)置,也可不設(shè)置,不管鼠標(biāo)的類型或與系統(tǒng)相連的類似于鼠標(biāo)的設(shè)備的類型如何。要得到關(guān)于相對鼠標(biāo)動作的信息,參見下面?zhèn)渥⒉糠帧?nbsp;
MOOSEEVENTFMOVE:表明發(fā)生移動。
M00SEEVENTF_LEFTDOWN:表明接按下鼠標(biāo)左鍵。
M00SEEVENTF_LEFTUP:表明松開鼠標(biāo)左鍵。
MOOSEEVENTF_RIGHTDOWN:表明按下鼠標(biāo)右鍵。
MOOSEEVENTF_RIGHTUP:表明松開鼠標(biāo)右鍵。
MOOSEEVENTF_MIDDLEDOWN:表明按下鼠標(biāo)中鍵。
MOOSEEVENTF_MIDDLEUP:表明松開鼠標(biāo)中鍵。
MOOSEEVENTF_WHEEL:在Windows NT中如果鼠標(biāo)有一個輪,表明鼠標(biāo)輪被移動。移動的數(shù)量由dwData給出。
dx:指定鼠標(biāo)沿x軸的絕對位置或者從上次鼠標(biāo)事件產(chǎn)生以來移動的數(shù)量,依賴于MOOSEEVENTF_ABSOLOTE的設(shè)置。給出的絕對數(shù)據(jù)作為鼠標(biāo)的實際X坐標(biāo);給出的相對數(shù)據(jù)作為移動的mickeys數(shù)。一個mickey表示鼠標(biāo)移動的數(shù)量,表明鼠標(biāo)已經(jīng)移動。
dy:指定鼠標(biāo)沿y軸的絕對位置或者從上次鼠標(biāo)事件產(chǎn)生以來移動的數(shù)量,依賴于MOOSEEVENTF_ABSOLVTE的設(shè)置。給出的絕對數(shù)據(jù)作為鼠標(biāo)的實際y坐標(biāo),給出的相對數(shù)據(jù)作為移動的mickeys數(shù)。
dwData:如果dwFlags為MOOSEEVENTF_WHEEL,則dwData指定鼠標(biāo)輪移動的數(shù)量。正值表明鼠標(biāo)輪向前轉(zhuǎn)動,即遠離用戶的方向;負值表明鼠標(biāo)輪向后轉(zhuǎn)動,即朝向用戶。一個輪擊定義為WHEEL_DELTA,即120。
如果dwFlagsS不是MOOSEEVENTF_WHEEL,則dWData應(yīng)為零。
dwExtralnfo:指定與鼠標(biāo)事件相關(guān)的附加32位值。應(yīng)用程序調(diào)用函數(shù)GetMessgeExtrajnfo來獲得此附加信息。
看完幫助還是不知道怎么計算dx和dy,下面給出C++的代碼以供參考:
cursor.X = static_cast<unsigned short>( position.point.x * 65535 / pimpl->desktopSize.width );
cursor.Y = static_cast<unsigned short>( position.point.y * 65535 / pimpl->desktopSize.height );

TA貢獻1813條經(jīng)驗 獲得超2個贊
告訴你可以使用API:PostMessage 達到目的
PostMessage(句柄,事件,參數(shù)1,參數(shù)2)
實例:
PostMessage(hWnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELONG(288, 455));
PostMessage(hWnd, WM_LBUTTONUP, MK_LBUTTON, MAKELONG(288, 455));
這里是坐標(biāo)是控件內(nèi)的相對坐標(biāo),控件左上角為0,0
- 2 回答
- 0 關(guān)注
- 152 瀏覽
添加回答
舉報