zpráva WM_MOUSEHWHEEL
Odesláno do aktivního okna, když je vodorovné kolečko myši nakloněné nebo otočené. Funkce DefWindowProc rozšíří zprávu do nadřazeného objektu okna. Zpráva by neměla obsahovat žádné interní přeposílání, protože DefWindowProc ho rozšíří o nadřazený řetězec, dokud nenajde okno, které ji zpracuje.
Okno obdrží tuto zprávu prostřednictvím funkce WindowProc.
#define WM_MOUSEHWHEEL 0x020E
Parametry
-
wParam
-
Slovo s vysokým pořadím označuje vzdálenost, o kterou je kolo otočené, vyjádřené v násobcích nebo faktorech WHEEL_DELTA, což je nastaveno na hodnotu 120. Kladná hodnota označuje, že kolo bylo otočené doprava; záporná hodnota označuje, že kolečko bylo otočené doleva.
Slovo s nízkým pořadím označuje, jestli jsou různé virtuální klíče mimo provoz. Tento parametr může být jedna nebo více následujících hodnot.
Hodnota Význam - MK_CONTROL
- 0x0008
Klávesa CTRL je dole. - MK_LBUTTON
- 0x0001
Levé tlačítko myši je dole. - MK_MBUTTON
- 0x0010
Prostřední tlačítko myši je dole. - MK_RBUTTON
- 0x0002
Pravé tlačítko myši je dole. - MK_SHIFT
- 0x0004
Klávesa SHIFT je dole. - MK_XBUTTON1
- 0x0020
XBUTTON1 je dole. - MK_XBUTTON2
- 0x0040
XBUTTON2 je dole. -
lParam
-
Slovo s nízkým pořadím určuje souřadnici x ukazatele vzhledem k levému hornímu rohu obrazovky.
Slovo s vysokým pořadím určuje souřadnici y ukazatele vzhledem k levému hornímu rohu obrazovky.
Návratová hodnota
Pokud aplikace tuto zprávu zpracuje, měla by vrátit nulu.
Poznámky
Pomocí následujícího kódu získejte informace v parametru wParam.
fwKeys = GET_KEYSTATE_WPARAM(wParam);
zDelta = GET_WHEEL_DELTA_WPARAM(wParam);
K získání vodorovné a svislé pozice použijte následující kód.
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
Jak je uvedeno výše, souřadnice x je v nízkém pořadí návratové hodnoty; souřadnice y je ve vysokém pořadí krátkých (oba představují podepsané hodnoty, protože mohou přijímat záporné hodnoty v systémech s více monitory). Pokud je vrácená hodnota přiřazena k proměnné, můžete pomocí makra MAKEPOINTS získat strukturu POINTS z návratové hodnoty. K extrahování souřadnic x nebo y můžete použít také GET_X_LPARAM nebo GET_Y_LPARAM makro.
Důležitý
Nepoužívejte LOWORD ani makra HIWORD extrahovat souřadnice kurzoru x a y, protože tato makra vrací nesprávné výsledky v systémech s více monitory. Systémy s více monitory můžou mít záporné souřadnice x a y a LOWORD a HIWORD zacházet se souřadnicemi jako s množstvími bez znaménka.
Otáčení kola je násobkem WHEEL_DELTA, který je nastaven na 120. Jedná se o prahovou hodnotu pro akci, která se má provést, a jedna taková akce (například posouvání o jeden přírůstek) by měla nastat pro každou rozdílovou hodnotu.
Rozdíl byl nastaven na 120, aby Microsoft nebo jiní dodavatelé mohli vytvářet jemněji otěžující kola (například volně rotující kolo bez závorek) odesílat více zpráv na otáčení, ale s menší hodnotou v každé zprávě. Pokud chcete tuto funkci použít, můžete buď přidat příchozí rozdílové hodnoty, dokud nebude dosaženo WHEEL_DELTA (takže pro rozdílové otočení získáte stejnou odpověď), nebo posunete částečné řádky v odpovědi na častější zprávy. Můžete také zvolit členitost posouvání a shromáždí rozdíly, dokud nedosáhnete.
Požadavky
Požadavek | Hodnota |
---|---|
Minimální podporovaný klient |
Windows Vista [pouze desktopové aplikace] |
Minimální podporovaný server |
Windows Server 2008 [jenom desktopové aplikace] |
Záhlaví |
|
Viz také
-
referenční
-
koncepční
-
další prostředky
-
bodů