2 回答

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊
mouse_event 函數(shù)功能:該函數(shù)綜合鼠標(biāo)擊鍵和鼠標(biāo)動(dòng)作。
函數(shù)原型:
VOID mouse_event(
DWORD dwFlags, // motion and click options
DWORD dx, // horizontal position or change
DWORD dy, // vertical position or change
DWORD dwData, // wheel movement
ULONG_PTR dwExtraInfo // application-defined information
);
參數(shù):
dwFlags:標(biāo)志位集,指定點(diǎn)擊按鈕和鼠標(biāo)動(dòng)作的多種情況。此參數(shù)里的各位可以是下列值的任何合理組合:
MOUSEEVENTF_ABSOLUTE:表明參數(shù)dX,dy含有規(guī)范化的絕對(duì)坐標(biāo)。如果不設(shè)置此位,參數(shù)含有相對(duì)數(shù)據(jù):相對(duì)于上次位置的改動(dòng)位置。此標(biāo)志可被設(shè)置,也可不設(shè)置,不管鼠標(biāo)的類型或與系統(tǒng)相連的類似于鼠標(biāo)的設(shè)備的類型如何。要得到關(guān)于相對(duì)鼠標(biāo)動(dòng)作的信息,參見下面?zhèn)渥⒉糠帧?br/>MOOSEEVENTFMOVE:表明發(fā)生移動(dòng)。
MOOSEEVENTF_LEFTDOWN:表明接按下鼠標(biāo)左鍵。
MOOSEEVENTF_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)有一個(gè)輪,表明鼠標(biāo)輪被移動(dòng)。移動(dòng)的數(shù)量由dwData給出。
dx:指定鼠標(biāo)沿x軸的絕對(duì)位置或者從上次鼠標(biāo)事件產(chǎn)生以來移動(dòng)的數(shù)量,依賴于MOOSEEVENTF_ABSOLOTE的設(shè)置。給出的絕對(duì)數(shù)據(jù)作為鼠標(biāo)的實(shí)際X坐標(biāo);給出的相對(duì)數(shù)據(jù)作為移動(dòng)的mickeys數(shù)。一個(gè)mickey表示鼠標(biāo)移動(dòng)的數(shù)量,表明鼠標(biāo)已經(jīng)移動(dòng)。
dy:指定鼠標(biāo)沿y軸的絕對(duì)位置或者從上次鼠標(biāo)事件產(chǎn)生以來移動(dòng)的數(shù)量,依賴于MOOSEEVENTF_ABSOLVTE的設(shè)置。給出的絕對(duì)數(shù)據(jù)作為鼠標(biāo)的實(shí)際y坐標(biāo),給出的相對(duì)數(shù)據(jù)作為移動(dòng)的mickeys數(shù)。
dwData:如果dwFlags為MOOSEEVENTF_WHEEL,則dwData指定鼠標(biāo)輪移動(dòng)的數(shù)量。正值表明鼠標(biāo)輪向前轉(zhuǎn)動(dòng),即遠(yuǎn)離用戶的方向;負(fù)值表明鼠標(biāo)輪向后轉(zhuǎn)動(dòng),即朝向用戶。一個(gè)輪擊定義為WHEEL_DELTA,即120。
如果dwFlagsS不是MOOSEEVENTF_WHEEL,則dWData應(yīng)為零。
dwExtralnfo:指定與鼠標(biāo)事件相關(guān)的附加32位值。應(yīng)用程序調(diào)用函數(shù)GetMessgeExtrajnfo來獲得此附加信息。
返回值:無。
備注:如果鼠標(biāo)被移動(dòng),用設(shè)置MOUSEEVENTF_MOVE來表明,dX和dy保留移動(dòng)的信息。給出的信息是絕對(duì)或相對(duì)整數(shù)值。
如果指定了MOWSEEVENTF_ABSOLOTE值,則dX和dy含有標(biāo)準(zhǔn)化的絕對(duì)坐標(biāo),其值在0到65535之間。事件程序?qū)⒋俗鴺?biāo)映射到顯示表面。坐標(biāo)(0,0)映射到顯示表面的左上角,(6553,65535)映射到右下角。
如果沒指定MOWSEEVENTF_ABSOLOTE,dX和dy表示相對(duì)于上次鼠標(biāo)事件產(chǎn)生的位置(即上次報(bào)告的位置)的移動(dòng)。正值表示鼠標(biāo)向右(或下)移動(dòng);負(fù)值表示鼠標(biāo)向左(或上)移動(dòng)。
鼠標(biāo)的相對(duì)移動(dòng)服從鼠標(biāo)速度和加速度等級(jí)的設(shè)置,一個(gè)最終用戶用鼠標(biāo)控制面板應(yīng)用程序來設(shè)置這些值,應(yīng)用程序用函數(shù)SystemParameterslnfo來取得和設(shè)置這些值。
在應(yīng)用加速時(shí)系統(tǒng)對(duì)指定相對(duì)鼠標(biāo)移動(dòng)提供了兩個(gè)測試。如果指定的沿X軸y軸的距離比第一個(gè)鼠標(biāo)閾值大,并且鼠標(biāo)的加速等級(jí)非零,則操作系統(tǒng)將距離加倍。如果指定的沿X軸或y軸的距離比第二個(gè)鼠標(biāo)閾值大,并且鼠標(biāo)的加速等級(jí)為2,則操作系統(tǒng)將從第一個(gè)閾測試得來的距離加倍。這樣就允許操作系統(tǒng)將指定鼠標(biāo)沿X軸或y軸的相對(duì)位移加到4倍。
一旦應(yīng)用了加速,系統(tǒng)用期望的鼠標(biāo)速度換算合成的值。鼠標(biāo)速度的范圍是從1(最慢)到20(最快),并代表基于鼠標(biāo)移動(dòng)的距離指示符移動(dòng)的數(shù)量。缺省值是10,表示對(duì)鼠標(biāo)的移動(dòng)設(shè)有附加的修改。
函數(shù)mouse_event需要用的應(yīng)用程序用來合成鼠標(biāo)事件。也被應(yīng)用程序用來取得鼠標(biāo)位置和鼠標(biāo)按鍵狀態(tài)之外的鼠標(biāo)信息。例如,如果輸入板制造商想將基于畫筆的信息傳給自己的應(yīng)用程序,可以寫一個(gè)直接與輸入板硬件通信的動(dòng)態(tài)鍵接庫(DLL),獲得附加的信息,并保存到一個(gè)隊(duì)列中。DLL然后調(diào)用mouse_event,用標(biāo)準(zhǔn)按鍵和x/y位置數(shù)據(jù),并在參數(shù)dwExtralnfo設(shè)置排列的附加信息的指針或索引。當(dāng)應(yīng)用程序需要附加信息時(shí),調(diào)用DLL(連同存貯在dwEXtralnfo中的指針或索引),則DLL返回附加信息。
Windows CE:Windows CE不支持參數(shù) dwFlags取MOOSE EVENTF WHEEL常數(shù)。
速查: Windows NT: 3.1及以上版本; Windows:95及以上版本;Windows CE:不支持;頭文件:winuser.h;輸入庫:user32.lib。
vb:Private Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
- 2 回答
- 0 關(guān)注
- 994 瀏覽
添加回答
舉報(bào)