Informacje o pieszczochach
System zapewnia jeden kursor na kolejkę komunikatów. Okno powinno tworzyć kursor tylko wtedy, gdy jest skupione na klawiaturze lub jest aktywne. Okno powinno zniszczyć kursor przed utratą fokusu klawiatury lub staniem się nieaktywnym. Aby uzyskać więcej informacji na temat wprowadzania za pomocą klawiatury, zobacz Wprowadzanie klawiatury.
Użyj funkcji CreateCaret, aby określić parametry karetki. System tworzy karetki, odwracając kolor pikseli w prostokątze określonym przez położenie, szerokość i wysokość karetki. Szerokość i wysokość są określone w jednostkach logicznych; dlatego wygląd kursora podlega trybowi mapowania okna.
W tej sekcji omówiono następujące tematy.
Widoczność karetki
Po zdefiniowaniu kursora użyj funkcji ShowCaret, aby kursor był widoczny. Po wyświetleniu karetki automatycznie zaczyna migać. Aby wyświetlić pełną karetkę, system odwraca każdy piksel w prostokącie; aby wyświetlić szarą karetkę, system odwraca co drugi piksel; aby wyświetlić karetkę bitmapową, system odwraca tylko białe piksele mapy bitowej.
Czas migania kursora
Czas, w milisekundach, wymagany do odwrócenia kursora, jest nazywany czasem mrugania. Kursor będzie migał tak długo, jak wątek, który jest właścicielem kolejki komunikatów, ma mechanizm przetwarzania komunikatów obsługujący te komunikaty.
Użytkownik może ustawić czas migania kursora przy użyciu Panelu Sterowania, a aplikacje powinny uwzględniać ustawienia wybrane przez użytkownika. Aplikacja może określić czas migania kursora przy użyciu funkcji GetCaretBlinkTime. Jeśli piszesz aplikację, która umożliwia użytkownikowi dostosowanie czasu, takiego jak aplet Panelu sterowania, użyj funkcji SetCaretBlinkTime, aby ustawić częstotliwość czasu do określonej liczby milisekund.
Czas flash to czas upływający w milisekundach, wymagany w celu wyświetlenia, odwrócenia i przywrócenia kursora. Czas błysku kursora jest dwukrotnie dłuższy niż czas mrugnięcia.
Położenie karetki
Położenie karetki można określić przy użyciu funkcji GetCaretPos. Pozycja w współrzędnych klienta jest kopiowana do struktury określonej przez parametr w GetCaretPos. Aplikacja może przenieść kursor w oknie, używając funkcji SetCaretPos. Okno może przenosić kursor tylko wtedy, gdy już nim zarządza. SetCaretPos może przenieść kursor, niezależnie od tego, czy jest on widoczny, czy nie.
Usuwanie kursora
Możesz tymczasowo usunąć kursor, ukrywając go, lub trwale usunąć kursor, niszcząc go. Aby ukryć daszek, użyj funkcji HideCaret. Jest to przydatne, gdy aplikacja musi przerysować ekran podczas przetwarzania komunikatu, ale musi trzymać kursor z dala. Po zakończeniu rysowania aplikacja może ponownie wyświetlić kursor przy użyciu funkcji ShowCaret. Ukrycie karetki nie niszczy kształtu ani nie unieważnia punktu wstawiania. Ukrywanie kursora jest skumulowane; oznacza to, że jeśli aplikacja wywołuje HideCaret pięć razy, musi również wywołać ShowCaret pięć razy, zanim kursor pojawi się ponownie.
Aby usunąć kursor tekstowy z ekranu i zniszczyć jego kształt, użyj funkcji DestroyCaret. DestroyCaret niszczy kursor tylko wtedy, gdy okno związane z bieżącym zadaniem jest właścicielem kursora.