Over Carets
Het systeem biedt één caret per berichtenwachtrij. Een venster moet alleen een caret maken wanneer het de toetsenbordfocus heeft of actief is. Het venster moet de caret vernietigen voordat de toetsenbordfocus verloren gaat of inactief wordt. Zie Toetsenbordinvoervoor meer informatie over toetsenbordinvoer.
Gebruik de functie CreateCaret om de parameters voor een caret op te geven. Het systeem vormt een caret door de pixelkleur binnen de rechthoek te omkeren die is opgegeven door de positie, breedte en hoogte van de caret. De breedte en hoogte worden opgegeven in logische eenheden; daarom is het uiterlijk van een caret afhankelijk van de afbeeldingsmodus van het venster.
De volgende onderwerpen worden in deze sectie besproken.
- zichtbaarheid van caret
- Caret Knipperen Tijd
- Cursorpositie
- Een caret- verwijderen
Zichtbaarheid van caret
Nadat de caret is gedefinieerd, gebruikt u de functie ShowCaret om de caret zichtbaar te maken. Wanneer de caret verschijnt, begint deze automatisch te knipperen. Om een solide caret weer te geven, keert het systeem elke pixel in de rechthoek om; om een grijze caret weer te geven, keert het systeem elke andere pixel om; om een bitmap-caret weer te geven, keert het systeem alleen de witte bitsen van de bitmap om.
Knippertijd van caret
De verstreken tijd, in milliseconden, die nodig is om de caret te omkeren, wordt de knippertijdgenoemd. De caret knippert zolang de thread die eigenaar is van de berichtenwachtrij een berichtpomp heeft die de berichten verwerkt.
De gebruiker kan de knippertijd van de caret instellen via het Configuratiescherm en toepassingen moeten de instellingen respecteren die de gebruiker heeft gekozen. Een toepassing kan de knippertijd van de caret bepalen met behulp van de functie GetCaretBlinkTime. Als u een toepassing schrijft waarmee de gebruiker de knippertijd kan aanpassen, zoals een applet van het Configuratiescherm, gebruikt u de functie SetCaretBlinkTime om de snelheid van de knippertijd in te stellen op een opgegeven aantal milliseconden.
De flashtijd is de verstreken tijd, in milliseconden, vereist om de weergave van de caret weer te geven, om te keren en te herstellen. De flitstijd van een caret is twee keer zoveel als de knippertijd.
Positie van caret
U kunt de positie van de caret bepalen met behulp van de functie GetCaretPos. De positie, in clientcoördinaten, wordt gekopieerd naar een structuur die is opgegeven door een parameter in GetCaretPos. Een toepassing kan een caret in een venster verplaatsen door de functie SetCaretPos te gebruiken. Een venster kan een caret alleen verplaatsen als het de caret al bezit. SetCaretPos de caret verplaatsen, ongeacht of deze wel of niet zichtbaar is.
Een caret verwijderen
U kunt een caret tijdelijk verwijderen door het te verbergen of u kunt de caret permanent verwijderen door het te vernietigen. Als u de caret wilt verbergen, gebruikt u de functie HideCaret. Dit is handig wanneer uw toepassing het scherm opnieuw moet tekenen tijdens het verwerken van een bericht, maar de caret buiten de weg moet houden. Wanneer de toepassing klaar is met tekenen, kan de caret opnieuw worden weergegeven met behulp van de functie ShowCaret. Het verbergen van de caret vernietigt de vorm niet en maakt het invoegpunt niet ongeldig. Het verbergen van de caret is cumulatief; Als de toepassing HideCaret vijf keer aanroept, moet deze ook vijf keer ShowCaret aanroepen voordat de caret opnieuw wordt weergegeven.
Gebruik de DestroyCaret functie om de caret van het scherm te verwijderen en de vorm ervan te vernietigen. DestroyCaret vernietigt de caret alleen als het venster dat bij de huidige taak betrokken is, de caret bezit.