funzione mouse_event (winuser.h)
La funzione mouse_event sintetizza il movimento del mouse e i clic del pulsante.
Sintassi
void mouse_event(
[in] DWORD dwFlags,
[in] DWORD dx,
[in] DWORD dy,
[in] DWORD dwData,
[in] ULONG_PTR dwExtraInfo
);
Parametri
[in] dwFlags
Tipo: DWORD
Controlla vari aspetti del movimento del mouse e clic sul pulsante. Questo parametro può essere determinate combinazioni dei valori seguenti.
I valori che specificano lo stato del pulsante del mouse sono impostati per indicare le modifiche nello stato, non in corso. Ad esempio, se il pulsante sinistro del mouse viene premuto e premuto, MOUSEEVENTF_LEFTDOWN viene impostato quando viene premuto il pulsante sinistro, ma non per i movimenti successivi. Analogamente, MOUSEEVENTF_LEFTUP viene impostato solo quando il pulsante viene rilasciato per la prima volta.
Non è possibile specificare sia MOUSEEVENTF_WHEEL che MOUSEEVENTF_XDOWN o MOUSEEVENTF_XUP simultaneamente nel parametro dwFlags , perché entrambi richiedono l'uso del campo dwData .
[in] dx
Tipo: DWORD
La posizione assoluta del mouse lungo l'asse x o la sua quantità di movimento dall'ultimo evento del mouse è stata generata, a seconda dell'impostazione di MOUSEEVENTF_ABSOLUTE. I dati assoluti sono specificati come coordinata x effettiva del mouse; I dati relativi sono specificati come numero di mickey spostati. Una mickey è la quantità che un mouse deve spostarsi per segnalare che è stato spostato.
[in] dy
Tipo: DWORD
La posizione assoluta del mouse lungo l'asse y o la sua quantità di movimento dall'ultimo evento del mouse è stata generata, a seconda dell'impostazione di MOUSEEVENTF_ABSOLUTE. I dati assoluti sono specificati come coordinata effettiva del mouse; I dati relativi sono specificati come numero di mickey spostati.
[in] dwData
Tipo: DWORD
Se dwFlags contiene MOUSEEVENTF_WHEEL, dwData specifica la quantità di movimento della ruota. Un valore positivo indica che la ruota è stata ruotata in avanti, lontano dall'utente; un valore negativo indica che la rotellina è stata ruotata verso l'indietro, verso l'utente. Un clic a rotelle viene definito come WHEEL_DELTA, ovvero 120.
Se dwFlags contiene MOUSEEVENTF_HWHEEL, dwData specifica la quantità di movimento della ruota. Un valore positivo indica che la ruota era inclinata verso destra; un valore negativo indica che la ruota è stata inclinata verso sinistra.
Se dwFlags contiene MOUSEEVENTF_XDOWN oMOUSEEVENTF_XUP, dwData specifica quali pulsanti X sono stati premuti o rilasciati. Questo valore può essere una combinazione dei flag seguenti.
Se dwFlags non è MOUSEEVENTF_WHEEL, MOUSEEVENTF_XDOWN o MOUSEEVENTF_XUP, dwData deve essere zero.
Valore | Significato |
---|---|
|
Impostare se il primo pulsante X è stato premuto o rilasciato. |
|
Impostare se il secondo pulsante X è stato premuto o rilasciato. |
[in] dwExtraInfo
Tipo: ULONG_PTR
Valore aggiuntivo associato all'evento del mouse. Un'applicazione chiama GetMessageExtraInfo per ottenere queste informazioni aggiuntive.
Valore restituito
nessuno
Osservazioni
Se il mouse è stato spostato, indicato da MOUSEEVENTF_MOVE impostato, dx e dy contengono informazioni su tale movimento. Le informazioni sono specificate come valori integer assoluti o relativi.
Se viene specificato MOUSEEVENTF_ABSOLUTE valore, dx e dy contengono coordinate assolute normalizzate tra 0 e 65.535. La routine evento esegue il mapping di queste coordinate all'area di visualizzazione. Coordinata (0,0) mappa nell'angolo superiore sinistro della superficie di visualizzazione, (65535,65535) mappa nell'angolo inferiore destro.
Se il valore MOUSEEVENTF_ABSOLUTE non è specificato, dx e dy specificano movimenti relativi da quando è stato generato l'ultimo evento del mouse (l'ultima posizione segnalata). I valori positivi indicano che il mouse è stato spostato a destra (o verso il basso); i valori negativi indicano che il mouse è stato spostato a sinistra (o verso l'alto).
Il movimento del mouse relativo è soggetto alle impostazioni per la velocità del mouse e il livello di accelerazione. Un utente finale imposta questi valori usando l'applicazione Mouse in Pannello di controllo. Un'applicazione ottiene e imposta questi valori con la funzione SystemParametersInfo .
Il sistema applica due test al movimento relativo del mouse specificato durante l'applicazione dell'accelerazione. Se la distanza specificata lungo l'asse x o y è maggiore del primo valore soglia del mouse e il livello di accelerazione del mouse non è zero, il sistema operativo raddoppia la distanza. Se la distanza specificata lungo l'asse x- o y è maggiore del secondo valore soglia del mouse e il livello di accelerazione del mouse è uguale a due, il sistema operativo raddoppia la distanza risultante dall'applicazione del primo test soglia. È quindi possibile che il sistema operativo moltiplica il movimento del mouse relativamente specificato lungo l'asse x o y fino a quattro volte.
Una volta applicata l'accelerazione, il sistema ridimensiona il valore risultante in base alla velocità del mouse desiderata. La velocità del mouse può variare da 1 (più lenta) a 20 (più veloce) e rappresenta la quantità di movimento del puntatore in base alla distanza in cui si sposta il mouse. Il valore predefinito è 10, che non comporta alcuna modifica aggiuntiva al movimento del mouse.
La funzione mouse_event viene usata per sintetizzare gli eventi del mouse da applicazioni che devono farlo. Viene usato anche dalle applicazioni che devono ottenere maggiori informazioni dal mouse rispetto alla posizione e allo stato del pulsante. Ad esempio, se un produttore di tablet vuole passare informazioni basate sulla penna alle proprie applicazioni, può scrivere una DLL che comunica direttamente all'hardware del tablet, ottiene le informazioni aggiuntive e la salva in una coda. La DLL chiama quindi mouse_event con il pulsante standard e i dati di posizione x/y, insieme al parametro dwExtraInfo , un puntatore o un indice alle informazioni aggiuntive in coda. Quando l'applicazione necessita delle informazioni aggiuntive, chiama la DLL con il puntatore o l'indice archiviato in dwExtraInfo e la DLL restituisce le informazioni aggiuntive.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winuser.h (include Windows.h) |
Libreria | User32.lib |
DLL | User32.dll |
Vedi anche
Informazioni concettuali
Altre risorse
Riferimento