เมื่อใดก็ตามที่โปรแกรมประยุกต์ของคุณ redraws หน้าจอขณะประมวลผลข้อความอื่นที่ไม่ใช่ WM_PAINTจะต้องทำเครื่องหมายรูปหมวกมองไม่เห็น โดยใช้ฟังก์ชันHideCaret เมื่อโปรแกรมประยุกต์ของคุณจะเสร็จสิ้นการวาด แสดงเครื่องหมายรูปหมวกใหม่ โดยใช้ฟังก์ชันShowCaret ถ้าโปรแกรมประยุกต์ของคุณประมวลผลข้อความ WM_PAINT คุณไม่จำเป็นเมื่อต้องการซ่อน และการแสดงเครื่องหมายรูปหมวก ใหม่เนื่องจากฟังก์ชันนี้ไม่ข้อมูลนี้โดยอัตโนมัติ.
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการกำหนดให้โปรแกรมประยุกต์ของคุณซ่อนเครื่องหมายรูปหมวก ขณะวาดอักขระบนหน้าจอ และ ขณะประมวลผลข้อความWM_CHAR.
HWND hwnd, / / หน้าต่างจัดการ HDC hdc / / บริบทอุปกรณ์กรณี WM_CHAR: สวิตช์ (wParam) {กรณี 0x08: / / backspace ในการประมวลผล
break
กรณี 0x09: / / แท็บการประมวลผล
break
กรณี 0x0D: / / ดำเนินการขนส่งส่งคืน
break
กรณี 0x1B: / / กระบวนการทางออก
break
กรณี 0x0A: / / ทำการประมวลผลแบบ linefeed
break
เริ่มต้น: / / ซ่อนเครื่องหมายรูปหมวก
HideCaret(hwnd)
/ / วาดอักขระบนหน้าจอ
hdc = GetDC(hwnd)
SelectObject (hdc, GetStockObject(SYSTEM_FIXED_FONT))
TextOut (hdc, x, y, lpszChar, 1);
ReleaseDC (hwnd, hdc);
/ / แสดงเครื่องหมายรูปหมวก
ShowCaret(hwnd)
}
ถ้าโปรแกรมประยุกต์ของคุณเรียกฟังก์ชันHideCaretหลายครั้ง โดยไม่มีการโทรShowCaretเครื่องหมายรูปหมวกจะไม่ปรากฏจนกว่าโปรแกรมประยุกต์ยังเรียกShowCaretจำนวนครั้งเดียวกัน.