Share via


Informazioni su Carets

Il sistema fornisce un caret per ogni coda di messaggi. Una finestra deve creare un caret solo quando ha lo stato attivo o lo stato attivo della tastiera. La finestra deve distruggere il caret prima di perdere lo stato attivo della tastiera o diventare inattivo. Per altre informazioni sull'input della tastiera, vedere Input da tastiera.

Usare la funzione CreateCaret per specificare i parametri per un caret. Il sistema forma un caret invertendo il colore del pixel all'interno del rettangolo specificato dalla posizione, dalla larghezza e dall'altezza del caret. La larghezza e l'altezza vengono specificate in unità logiche; pertanto, l'aspetto di un caret è soggetto alla modalità di mapping della finestra.

Gli argomenti seguenti vengono illustrati in questa sezione.

Visibilità del cursore

Dopo aver definito il caret, usare la funzione ShowCaret per rendere visibile il caret. Quando viene visualizzato il caret, inizia automaticamente a lampeggiare. Per visualizzare una caret solida, il sistema inverte ogni pixel nel rettangolo; per visualizzare una careta grigia, il sistema inverte ogni altro pixel; per visualizzare un caret bitmap, il sistema inverte solo i bit bianchi della bitmap.

Il tempo trascorso, in millisecondi, necessario per invertire il caret viene chiamato il tempo di lampeggiazione. Il cursore lampeggia finché il thread proprietario della coda del messaggio ha una pompa di messaggi che elabora i messaggi.

L'utente può impostare l'ora di collegamento del caret usando la Pannello di controllo e le applicazioni devono rispettare le impostazioni scelte dall'utente. Un'applicazione può determinare il tempo di collegamento del caret usando la funzione GetCaretBlinkTime . Se si scrive un'applicazione che consente all'utente di modificare l'ora di collegamento, ad esempio un Pannello di controllo applet, utilizzare la funzione SetCaretBlinkTime per impostare la frequenza del tempo di lampeggiazione su un numero specificato di millisecondi.

Il tempo flash è il tempo trascorso, in millisecondi, necessario per visualizzare, invertire e ripristinare il display del caret. Il tempo flash di un caret è doppio quanto il tempo di lampeggiazione.

Posizione del cursore

È possibile determinare la posizione del caret usando la funzione GetCaretPos . La posizione, nelle coordinate client, viene copiata in una struttura specificata da un parametro in GetCaretPos. Un'applicazione può spostare un cursore in una finestra usando la funzione SetCaretPos . Una finestra può spostare un caret solo se è già proprietario del caret. SetCaretPos può spostare il cursore se è visibile o meno.

Rimozione di un caret

È possibile rimuovere temporaneamente un caret nascondendolo oppure è possibile rimuoverlo definitivamente distruggendolo. Per nascondere il caret, usare la funzione HideCaret . Questo è utile quando l'applicazione deve ridisegnare la schermata durante l'elaborazione di un messaggio, ma deve mantenere il caret fuori dal modo. Al termine del disegno dell'applicazione, può visualizzare di nuovo il caret usando la funzione ShowCaret . Nascondere il caret non elimina la forma o invalida il punto di inserimento. Nascondere il caret è cumulativo; ovvero, se l'applicazione chiama HideCaret cinque volte, deve anche chiamare ShowCaret cinque volte prima che il caret venga visualizzato.

Per rimuovere il caret dallo schermo e distruggerne la forma, usare la funzione DestroyCaret . DestroyCaret elimina il caret solo se la finestra coinvolta nell'attività corrente possiede il caret.