WM_MOUSEWHEEL zpráva
Při otáčení kolečka myši se odešle do okna fokusu. 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_MOUSEWHEEL 0x020A
Parametry
-
wParam
-
Slovo s vysokým pořadím označuje vzdálenost, o kterou je kolo otočené, vyjádřeno v násobcích nebo děleních WHEEL_DELTA, což je 120. Kladná hodnota označuje, že kolo bylo otočené dopředu, od uživatele; záporná hodnota označuje, že kolo bylo otočené zpět směrem k uživateli.
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.
Otočení kola bude 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 otočná kola (volně rotující kolo bez závorek), aby odeslali 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 reakci na častější zprávy. Můžete také zvolit členitost posouvání a shromáždí rozdíly, dokud nedosáhnete.
Poznámka: pro MSH_MOUSEWHEELneexistuje fwKeys . V opačném případě jsou parametry přesně stejné jako pro WM_MOUSEWHEEL.
Je až do aplikace, aby předala MSH_MOUSEWHEEL všem vloženým objektům nebo ovládacím prvkům. Aplikace je nutná k odeslání zprávy do aktivní vložené aplikace OLE. Je volitelné, aby ji aplikace odeslala do ovládacího prvku s podporou kolečka s fokusem. Pokud aplikace odešle zprávu ovládacímu prvku, může zkontrolovat návratovou hodnotu a zjistit, jestli byla zpráva zpracována. Ovládací prvky se vyžadují k vrácení hodnoty TRUE, pokud zprávu zpracovávají.
Požadavky
Požadavek | Hodnota |
---|---|
Minimální podporovaný klient |
Windows 2000 Professional [jenom desktopové aplikace] |
Minimální podporovaný server |
Windows 2000 Server [jenom desktopové aplikace] |
Záhlaví |
|
Viz také
-
referenční
-
koncepční
-
další prostředky
-
bodů