เมื่อได้รับโฟกัสแป้นพิมพ์ หน้าต่างควรสร้าง และแสดงเครื่องหมายรูปหมวก ใช้ฟังก์ชันCreateCaretในการสร้างตัวชี้เมื่อคำในหน้าต่างการกำหนด คุณจึงสามารถเรียกSetCaretPosการตั้งค่าตำแหน่งปัจจุบันของเครื่องหมายรูปหมวกและShowCaretเพื่อทำเครื่องหมายรูปหมวกที่มองเห็น.
ระบบส่งข้อความWM_SETFOCUSไปหน้าต่างรับโฟกัสของแป้นพิมพ์ ดังนั้น แอปพลิเคชันควรสร้าง และแสดงเครื่องหมายรูปหมวกขณะประมวลผลข้อความนี้.
HWND hwnd, / / หน้าต่างจัดการ int x / / นอนพิกัดของเคอร์เซอร์ int y / / แนวตั้งพิกัดของเคอร์เซอร์ int nWidth / / ความกว้างของเคอร์เซอร์ int nHeight / / ความสูงของเคอร์เซอร์ char * lpszChar / / ชี้ไปยังอักขระกรณี WM_SETFOCUS: / / สร้างเครื่องรูปหมวกสีดำทึบ
CreateCaret (hwnd (HBITMAP) NULL, nWidth, nHeight);
/ / ปรับตำแหน่งตัวชี้เมื่อ ในพิกัดของไคลเอ็นต์
SetCaretPos (x, y);
/ / แสดงเครื่องหมายรูปหมวก
ShowCaret(hwnd)
แบ่ง
เมื่อต้องการสร้างตัวชี้เมื่อการใช้บิตแมป คุณต้องระบุหมายเลขอ้างอิงการแมปเมื่อใช้CreateCaret คุณสามารถใช้โปรแกรมประยุกต์แบบกราฟิกเพื่อสร้างบิตแมปและคอมไพเลอร์ทรัพยากรเพื่อเพิ่มบิตแมปไปยังทรัพยากรของโปรแกรมประยุกต์ของคุณ โปรแกรมประยุกต์ของคุณสามารถใช้การ LoadBitmapฟังก์ชันโหลดหมายเลขอ้างอิงของบิตแมปได้ ตัวอย่าง คุณสามารถแทนบรรทัดCreateCaretในตัวอย่างก่อนหน้านี้ ด้วยบรรทัดต่อไปนี้ในการสร้างตัวชี้เมื่อเป็นบิตแมป.
/ / โหลดทรัพยากรตัวชี้เมื่อโปรแกรมประยุกต์ที่กำหนดเอง
hCaret = LoadBitmap (hinst, MAKEINTRESOURCE(120))
/ / สร้างเครื่องรูปหมวกแบบบิตแมป
CreateCaret (hwnd, hCaret, 0, 0)
อีกวิธีหนึ่งคือ คุณสามารถใช้การ CreateBitmapหรือ CreateDIBitmapฟังก์ชันการเรียกหมายเลขอ้างอิงของตัวชี้เมื่อบิตแมปได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับบิตแมป บิตแมป.
ถ้าโปรแกรมประยุกต์ของคุณระบุหมายเลขอ้างอิงการแมปCreateCaretละเว้นความกว้างและความสูงของพารามิเตอร์ บิตแมปกำหนดขนาดของเครื่องหมายรูปหมวก.