캐럿 정보
시스템은 메시지 큐당 하나의 커서를 제공합니다. 창은 키보드 포커스가 있거나 활성 상태인 경우에만 캐리트를 만들어야 합니다. 키보드 포커스를 잃거나 비활성 상태가 되기 전에 창에서 캐리트를 삭제해야 합니다. 키보드 입력에 대한 자세한 내용은 키보드 입력 참조하세요.
CreateCaret 함수를 사용하여 캐리트의 매개 변수를 지정합니다. 시스템은 캐리트의 위치, 너비 및 높이로 지정된 사각형 내의 픽셀 색을 반전하여 캐리트를 형성합니다. 너비와 높이가 논리 단위로 지정됩니다. 따라서 캐리트의 모양은 창의 매핑 모드가 적용됩니다.
이 섹션에서는 다음 항목에 대해 설명합니다.
커서 가시성
캐리트가 정의되면 ShowCaret 함수를 사용하여 캐리트를 표시합니다. 캐리트가 나타나면 자동으로 깜박이기 시작합니다. 단색 캐리트를 표시하기 위해 시스템은 사각형의 모든 픽셀을 반전합니다. 회색 캐리트를 표시하기 위해 시스템은 다른 모든 픽셀을 반전합니다. 비트맵 캐리트를 표시하려면 시스템에서 비트맵의 흰색 비트만 반전합니다.
캐리트 깜박임 시간
캐리트를 반전하는 데 필요한 경과 시간(밀리초)을 깜박임 시간이라고 합니다. 메시지 큐를 소유하는 스레드에 메시지를 처리하는 메시지 펌프가 있는 한 커서는 계속 깜박입니다.
사용자는 제어판을 사용하여 캐럿의 깜박임 시간을 설정할 수 있으며 애플리케이션은 사용자가 선택한 설정을 준수해야 합니다. 애플리케이션은 GetCaretBlinkTime 함수를 사용하여 캐럿의 깜박임 시간을 확인할 수 있습니다. 사용자가 제어판 애플릿과 같은 깜박임 시간을 조정할 수 있는 애플리케이션을 작성하는 경우 SetCaretBlinkTime 함수를 사용하여 깜박임 시간의 속도를 지정된 시간(밀리초)으로 설정합니다.
플래시 시간은 캐리트의 디스플레이를 표시, 반전 및 복원하는 데 필요한 경과된 시간(밀리초)입니다. 캐리트의 플래시 시간은 깜박임 시간의 두 배입니다.
Caret 위치
GetCaretPos 함수를 사용하여 캐럿의 위치를 확인할 수 있습니다. 클라이언트 좌표에서 위치는 GetCaretPos매개 변수로 지정된 구조체에 복사됩니다. 애플리케이션은 SetCaretPos 함수를 사용하여 창에서 캐럿을 이동할 수 있습니다. 창은 캐럿을 이미 소유하고 있는 경우에만 캐럿을 이동할 수 있습니다. SetCaretPos 표시 여부에 관계없이 캐럿을 이동할 수 있습니다.
Caret 제거
캐럿을 숨김으로써 일시적으로 제거하거나 캐럿을 제거하여 영구적으로 제거할 수 있습니다. 캐리트를 숨기려면 HideCaret 함수를 사용합니다. 이 기능은 메시지를 처리하는 동안 애플리케이션이 화면을 다시 그려야 하지만 캐럿이 방해되지 않도록 해야 할 때 유용합니다. 애플리케이션이 그리기를 마치면 ShowCaret 함수를 사용하여 캐럿을 다시 표시할 수 있습니다. 커서를 숨기더라도 형태가 없어지거나 삽입 지점이 무효화되지 않습니다. 캐리트를 숨기는 것은 누적입니다. 즉, 애플리케이션이 HideCaret 5번 호출하는 경우 ShowCaret 5번 호출해야만 캐리트가 다시 나타납니다.
화면에서 캐리트를 제거하고 모양을 삭제하려면 DestroyCaret 함수를 사용합니다. DestroyCaret 현재 작업에 관련된 창이 캐리트를 소유하는 경우에만 캐리트를 파괴합니다.