Sdílet prostřednictvím


Vstup myši

Tato část popisuje, jak systém poskytuje vstup myši do vaší aplikace a jak aplikace přijímá a zpracovává tento vstup.

V této části

Námět Popis
o vstupu myši
Toto téma popisuje vstup myši.
Použití vstupu myši
Tato část popisuje úkoly spojené se vstupem myši.
Referenční myší vstup

Funkce

Jméno Popis
_TrackMouseEvent Publikuje zprávy, když ukazatel myši opustí okno nebo po určitou dobu najede myší na okno. Tato funkce volá TrackMouseEvent, pokud existuje, jinak ji emuluje.
BlockInput Blokuje události vstupu z klávesnice a myši, aby nedosáhly aplikací.
DragDetect Zachytí myš a sleduje jeho pohyb, dokud uživatel nespustí levé tlačítko, stiskne klávesu ESC nebo přesune myš mimo obdélník přetažení kolem zadaného bodu. Šířku a výšku obdélníku přetažení určuje SM_CXDRAG a SM_CYDRAG hodnoty vrácené funkcí GetSystemMetrics.
EnableMouseInPointer Umožňuje, aby myš fungovala jako ukazovací zařízení.
PovolitOkno Povolí nebo zakáže zadávání myši a klávesnice do zadaného okna nebo ovládacího prvku. Když je vstup zakázaný, okno neobdrží vstup, například kliknutí myší a stisknutí kláves. Když je vstup povolený, okno přijme všechny vstupy.
GetCapture Načte úchyt do okna (pokud existuje), který zachytil myš. Myš může zachytit pouze jedno okno najednou; toto okno přijímá vstup myši bez ohledu na to, jestli je kurzor uvnitř jeho ohraničení.
GetDoubleClickTime Načte aktuální čas dvojitého kliknutí myši. Dvojitým kliknutím je řada dvou kliknutí na tlačítko myši, druhá, která se vyskytuje v zadaném čase po prvním. Čas dvojitého kliknutí je maximální počet milisekund, které mohou uplynout mezi prvním a druhým kliknutím dvojitého kliknutí.
GetMouseMovePointsEx Načte historii až 64 předchozích souřadnic myši nebo pera.
IsWindowEnabled Určuje, zda je zadané okno povoleno pro vstup myši a klávesnice.
ReleaseCapture Uvolní zachycení myši z okna v aktuálním vlákně a obnoví normální zpracování vstupu myši. Okno, které zachytilo myš, obdrží veškerý vstup myši bez ohledu na pozici kurzoru, s výjimkou případů, kdy je tlačítko myši kliknuto, zatímco kurzor je v okně jiného vlákna.
SendInput Syntetizuje stisknutí kláves, pohyby myši a kliknutí na tlačítko.
SetCapture Nastaví zachytávání myši na zadané okno, které patří do aktuálního vlákna. SetCapture zachytává vstup myši, a to buď když je myš nad zachytávaným oknem, nebo když bylo tlačítko myši stisknuto, když byla myš přes zachytané okno a tlačítko je stále dole. Myš může zachytit pouze jedno okno najednou.
Pokud je kurzor myši nad oknem vytvořeným jiným vláknem, systém přesměruje vstup myši do zadaného okna pouze v případě, že je tlačítko myši vypnuté.
SetDoubleClickTime Nastaví čas dvojitého kliknutí myši. Dvojitým kliknutím je řada dvou kliknutí na tlačítko myši, druhá se vyskytuje v zadaném čase po prvním. Doba dvojitého kliknutí je maximální počet milisekund, který může uplynout mezi prvním a druhým kliknutím dvojkliku.
SwapMouseButton Obrátí nebo obnoví význam tlačítek myši vlevo a vpravo.
TrackMouseEvent Publikuje zprávy, když ukazatel myši opustí okno nebo po určitou dobu najede myší na okno.

Následující funkce je zastaralá.

Funkce Popis
mouse_event Syntetizuje pohyb myši a kliknutí na tlačítko.

Upozornění

Jméno Popis
WM_APPCOMMAND Upozorní okno, že uživatel vygeneroval událost příkazu aplikace, například kliknutím na příkazové tlačítko aplikace pomocí myši nebo zadáním příkazové klávesy aplikace na klávesnici.
WM_CAPTURECHANGED Odesláno do okna, které ztrácí zachytávání myši.
WM_LBUTTONDBLCLK Publikováno, když uživatel dvakrát klikne na levé tlačítko myši, zatímco kurzor je v klientské oblasti okna. Pokud se myš nezachytí, zpráva se odešle do okna pod kurzorem. V opačném případě se zpráva publikuje do okna, které zachytilo myš.
WM_LBUTTONDOWN Publikováno, když uživatel stiskne levé tlačítko myši, zatímco kurzor je v klientské oblasti okna. Pokud se myš nezachytí, zpráva se odešle do okna pod kurzorem. V opačném případě se zpráva publikuje do okna, které zachytilo myš.
WM_LBUTTONUP Publikováno, když uživatel uvolní levé tlačítko myši, zatímco kurzor je v klientské oblasti okna. Pokud se myš nezachytí, zpráva se odešle do okna pod kurzorem. V opačném případě se zpráva publikuje do okna, které zachytilo myš.
WM_MBUTTONDBLCLK Publikováno, když uživatel dvakrát klikne na prostřední tlačítko myši, zatímco kurzor je v klientské oblasti okna. Pokud se myš nezachytí, zpráva se odešle do okna pod kurzorem. V opačném případě se zpráva publikuje do okna, které zachytilo myš.
WM_MBUTTONDOWN Publikováno, když uživatel stiskne prostřední tlačítko myši, zatímco kurzor je v klientské oblasti okna. Pokud se myš nezachytí, zpráva se odešle do okna pod kurzorem. V opačném případě se zpráva publikuje do okna, které zachytilo myš.
WM_MBUTTONUP Publikováno, když uživatel uvolní prostřední tlačítko myši, zatímco kurzor je v klientské oblasti okna. Pokud se myš nezachytí, zpráva se odešle do okna pod kurzorem. V opačném případě se zpráva publikuje do okna, které zachytilo myš.
WM_MOUSEACTIVATE Odesláno, když je kurzor v neaktivním okně a uživatel stiskne tlačítko myši. Nadřazené okno tuto zprávu obdrží pouze v případě, že ji podřízené okno předá funkci DefWindowProc.
WM_MOUSEHOVER Odesláno do okna, když kurzor najede na klientskou oblast okna po dobu uvedenou v předchozím volání TrackMouseEvent.
WM_MOUSEHWHEEL Odesláno do okna fokusu, když je vodorovné kolečko myši nakloněné nebo otočené. FunkceDefWindowProcrozšíří zprávu do nadřazeného objektu okna. Nemělo by docházet k internímu přeposílání zprávy, protože DefWindowProc ji propaguje po řetězci nadřazených prvků, dokud nenajde okno, které ji zpracovává.
WM_MOUSELEAVE Zpráva je odeslána do okna, když kurzor opustí klientskou oblast okna, které bylo určeno v předchozím volání TrackMouseEvent.
WM_MOUSEMOVE Odesláno do okna, když se kurzor pohne. Pokud není zachycena myš, zpráva se odešle do okna, které obsahuje kurzor. V opačném případě se zpráva publikuje do okna, které zachytilo myš.
WM_MOUSEWHEEL 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. Nemělo by docházet k internímu přeposílání zprávy, protože DefWindowProc ji předává do řetězce nadřazených oken, dokud nenajde okno, které ji zpracuje.
WM_NCHITTEST Odesláno do okna, aby bylo možné určit, jaká část okna odpovídá určité souřadnici obrazovky. K tomu může dojít například, když se kurzor přesune, když je tlačítko myši stisknuto nebo uvolněno, nebo v reakci na volání funkce, jako je WindowFromPoint. Pokud není zachycena myš, zpráva se odešle do okna pod kurzorem. V opačném případě se zpráva odešle do okna, které zachytilo myš.
WM_NCLBUTTONDBLCLK Publikováno, když uživatel dvakrát klikne na levé tlačítko myši, zatímco kurzor je v oblasti mimo klient okna. Tato zpráva se publikuje do okna, které obsahuje kurzor. Pokud okno zachytilo myš, tato zpráva není publikována.
WM_NCLBUTTONDOWN Publikováno, když uživatel stiskne levé tlačítko myši, zatímco kurzor je v oblasti mimo klient okna. Tato zpráva se publikuje do okna, které obsahuje kurzor. Pokud okno zachytilo myš, tato zpráva není publikována.
WM_NCLBUTTONUP Publikováno, když uživatel uvolní levé tlačítko myši, zatímco kurzor je v oblasti nonclient okna. Tato zpráva se publikuje do okna, které obsahuje kurzor. Pokud okno zachytilo myš, tato zpráva není publikována.
WM_NCMBUTTONDBLCLK Publikováno, když uživatel dvakrát klikne na prostřední tlačítko myši, zatímco kurzor je v oblasti mimo klient okna. Tato zpráva se publikuje do okna, které obsahuje kurzor. Pokud okno zachytilo myš, tato zpráva není publikována.
WM_NCMBUTTONDOWN Publikováno, když uživatel stiskne prostřední tlačítko myši, zatímco kurzor je v oblasti mimo klient okna. Tato zpráva se publikuje do okna, které obsahuje kurzor. Pokud okno zachytilo myš, tato zpráva není publikována.
WM_NCMBUTTONUP Publikováno, když uživatel uvolní prostřední tlačítko myši, zatímco kurzor je v oblasti mimo klient okna. Tato zpráva se publikuje do okna, které obsahuje kurzor. Pokud okno zachytilo myš, tato zpráva není publikována.
WM_NCMOUSEHOVER Odesláno do okna, když kurzor přejede neklientskou část okna po dobu uvedenou v předchozím voláníTrackMouseEvent.
WM_NCMOUSELEAVE Zasláno do okna, když kurzor opustí neklientskou oblast okna zadaného v předchozím voláníTrackMouseEvent.
WM_NCMOUSEMOVE Posláno do okna, když se kurzor přesune v neklientské oblasti okna. Tato zpráva se publikuje do okna, které obsahuje kurzor. Pokud okno zachytilo myš, tato zpráva není publikována.
WM_NCRBUTTONDBLCLK Publikováno, když uživatel dvakrát klikne na pravé tlačítko myši, zatímco kurzor je v oblasti mimo klient okna. Tato zpráva se publikuje do okna, které obsahuje kurzor. Pokud okno zachytilo myš, tato zpráva není publikována.
WM_NCRBUTTONDOWN Publikováno, když uživatel stiskne pravé tlačítko myši, zatímco kurzor je v oblasti mimo klient okna. Tato zpráva se publikuje do okna, které obsahuje kurzor. Pokud okno zachytilo myš, tato zpráva není publikována.
WM_NCRBUTTONUP Publikováno, když uživatel uvolní pravé tlačítko myši, zatímco kurzor je v oblasti nonclient okna. Tato zpráva se publikuje do okna, které obsahuje kurzor. Pokud okno zachytilo myš, tato zpráva není publikována.
WM_NCXBUTTONDBLCLK Je signalizováno, když uživatel dvakrát klikne buď na XBUTTON1 nebo XBUTTON2, zatímco je kurzor v neklientské oblasti okna. Tato zpráva se publikuje do okna, které obsahuje kurzor. Pokud okno zachytilo myš, tato zpráva není publikována.
WM_NCXBUTTONDOWN Odesláno, když uživatel stiskne XBUTTON1 nebo XBUTTON2, zatímco kurzor je v neklientské oblasti okna. Tato zpráva se publikuje do okna, které obsahuje kurzor. Pokud okno zachytilo myš, tato zpráva není publikována.
WM_NCXBUTTONUP Vyvoláno, když uživatel uvolní buď XBUTTON1, nebo XBUTTON2, zatímco kurzor je v oblasti neklientské části okna. Tato zpráva se publikuje do okna, které obsahuje kurzor. Pokud okno zachytilo myš, tato zpráva není publikována.
WM_RBUTTONDBLCLK Publikováno, když uživatel dvakrát klikne na pravé tlačítko myši, zatímco kurzor je v klientské oblasti okna. Pokud se myš nezachytí, zpráva se odešle do okna pod kurzorem. V opačném případě se zpráva publikuje do okna, které zachytilo myš.
WM_RBUTTONDOWN Publikováno, když uživatel stiskne pravé tlačítko myši, zatímco kurzor je v klientské oblasti okna. Pokud se myš nezachytí, zpráva se odešle do okna pod kurzorem. V opačném případě se zpráva publikuje do okna, které zachytilo myš.
WM_RBUTTONUP Publikováno, když uživatel uvolní pravé tlačítko myši, zatímco kurzor je v klientské oblasti okna. Pokud se myš nezachytí, zpráva se odešle do okna pod kurzorem. V opačném případě se zpráva publikuje do okna, které zachytilo myš.
WM_XBUTTONDBLCLK Publikováno, když uživatel dvakrát klikne buď XBUTTON1 nebo XBUTTON2, zatímco kurzor je v klientské oblasti okna. Pokud se myš nezachytí, zpráva se odešle do okna pod kurzorem. V opačném případě se zpráva publikuje do okna, které zachytilo myš.
WM_XBUTTONDOWN Publikováno, když uživatel stiskne XBUTTON1 nebo XBUTTON2, zatímco kurzor je v klientské oblasti okna. Pokud se myš nezachytí, zpráva se odešle do okna pod kurzorem. V opačném případě se zpráva publikuje do okna, které zachytilo myš.
WM_XBUTTONUP Publikováno, když uživatel uvolní XBUTTON1 nebo XBUTTON2, zatímco kurzor je v klientské oblasti okna. Pokud se myš nezachytí, zpráva se odešle do okna pod kurzorem. V opačném případě se zpráva publikuje do okna, které zachytilo myš.

Struktury

Jméno Popis
HARDWAREINPUT Obsahuje informace o simulované zprávě generované jiným vstupním zařízením než klávesnicí nebo myší.
INPUT Obsahuje informace používané k syntetizaci vstupních událostí, jako jsou stisknutí kláves, pohyb myši a kliknutí myší.
LASTINPUTINFO Obsahuje čas posledního vstupu.
MOUSEINPUT Obsahuje informace o simulované události myši.
MOUSEMOVEPOINT Obsahuje informace o umístění myši v souřadnicích obrazovky.
TRACKMOUSEEVENT Používáno funkcí TrackMouseEvent ke sledování situací, kdy ukazatel myši opustí okno nebo se pohybuje nad oknem po stanovenou dobu.