Sdílet prostřednictvím


Informace o Carets

Systém poskytuje jeden kurzor pro každou frontu zpráv. Okno by mělo vytvořit stříšku jenom v případě, že má fokus klávesnice nebo je aktivní. Okno by mělo zničit kurzor před ztrátou fokusu klávesnice nebo předtím, než se stane neaktivním. Další informace o vstupu klávesnice naleznete v tématu Vstup klávesnice.

Pomocí funkce CreateCaret zadejte parametry pro stříšku. Systém vytvoří kurzor tak, že invertuje barvu pixelu v obdélníku určeném umístěním kurzoru, šířkou a výškou. Šířka a výška jsou zadány v logických jednotkách; proto vzhled kurzoru je ovlivněn režimem mapování okna.

V této části jsou popsána následující témata.

Viditelnost kurzoru

Po definování kurzoru použijte funkci ShowCaret, aby byl kurzor viditelný. Když se zobrazí kurzor, automaticky začne blikat. Chcete-li zobrazit plný kurzor, systém invertuje každý pixel v obdélníku; aby se zobrazil šedý kurzor, systém invertuje každý druhý pixel; pokud chcete zobrazit rastrový kurzor, systém invertuje pouze bílé bity rastrového obrázku.

Uplynulý čas v milisekundách potřebný k invertování kurzoru se nazývá doba blikání. Kurzor bude blikat, dokud vlákno, které vlastní frontu zpráv, má aktivní zprávovou smyčku zpracovávající zprávy.

Uživatel může nastavit čas blikání kurzoru pomocí Ovládacího panelu a aplikace by měly respektovat nastavení, která uživatel zvolil. Aplikace může pomocí funkce GetCaretBlinkTime zjistit dobu blikání kurzoru. Pokud píšete aplikaci, která uživateli umožňuje upravit dobu blikání, například apletu Ovládacích panelů, použijte funkci SetCaretBlinkTime k nastavení rychlosti blikání na zadaný počet milisekund.

doba blesku je uplynulý čas v milisekundách potřebný k zobrazení, invertování a obnovení zobrazení kurzoru. Čas záblesku kurzoru je dvakrát delší než čas blikání.

Pozice kurzoru

Můžete určit pozici kurzoru pomocí funkce GetCaretPos. Pozice v souřadnicích klienta se zkopíruje do struktury určené parametrem v GetCaretPos. Aplikace může přesunout kurzor v okně pomocí funkce SetCaretPos. Okno může přesunout stříšku pouze v případě, že už je vlastníkem stříšky. SetCaretPos může přesunout kurzor, ať už je viditelný nebo ne.

Odstranění kurzoru

Stříšku můžete dočasně odebrat skrytím nebo můžete trvale odebrat stříšku zničením. Chcete-li skrýt kurzor, použijte funkci HideCaret. To je užitečné, když aplikace musí při zpracování zprávy překreslit obrazovku, ale musí udržet kurzor mimo oblast. Jakmile aplikace dokončí kreslení, může pomocí funkce ShowCaret znovu zobrazit kurzor. Skrytí kurzoru nezničí jeho tvar ani nezneplatní vkládací bod. Skrytí kurzoru je kumulativní; to znamená, že pokud aplikace volá HideCaret pětkrát, musí také volat ShowCaret pětkrát, než se kurzor znovu objeví.

Chcete-li odstranit kurzor z obrazovky a zničit jeho tvar, použijte funkci DestroyCaret. DestroyCaret zničí kurzor pouze v případě, že okno související s aktuálním úkolem vlastní kurzor.