ระบบแสดงเคอร์เซอร์คลาส (เคอร์เซอร์เกี่ยวข้องกับหน้าต่างที่ชี้เคอร์เซอร์) โดยอัตโนมัติ คุณสามารถกำหนดคลาสเคอร์เซอร์ในขณะที่การลงทะเบียนคลาสหน้าต่าง ตัวอย่างต่อไปนี้แสดงนี้ โดยการกำหนดหมายเลขอ้างอิงเคอร์เซอร์ไปยังสมาชิกhCursorของโครงสร้างWNDCLASSระบุพารามิเตอร์สุขา.
WNDCL&ASS สุขา
/ / เติมโครงสร้างคลาสหน้าต่าง ด้วยพารามิเตอร์ที่ / / อธิบายหน้าต่างหลัก
wc.style = NULL / / คลา style(s) wc.lpfnWndProc = MainWndProc (WNDPROC) / / หน้าต่างกระบวนงาน wc.cbClsExtra = 0 / / ไม่ใช่ข้อมูลพิเศษที่ wc.cbWndExtra ต่อคลาส = 0 / / ไม่มีต่อหน้าต่างข้อมูลเพิ่มเติม wc.hInstance = hinst / / โปรแกรมประยุกต์ที่เป็นเจ้าของ wc.hIcon คลา = LoadIcon (NULL, IDI_APPLICATION); / / คลาสไอคอน wc.hCursor = LoadCursor (hinst, MAKEINTRESOURCE(230)) / / คลาสเคอร์เซอร์ wc.hbrBackground = GetStockObject(WHITE_BRUSH) / / คลาสพื้นหลัง wc.lpszMenuName = "GenericMenu" / / คลา wc.lpszClassName เมนู = "GenericWClass" / / คลาสชื่อ / / ลงทะเบียนคลาสหน้าต่าง
กลับ RegisterClass(amp;wc)
เมื่อลงทะเบียนคลาสหน้าต่าง เคอร์เซอร์ที่ถูกระบุ ด้วย 230 ในแฟ้มทรัพยากรข้อกำหนดของโปรแกรมประยุกต์จะเคอร์เซอร์เริ่มต้นสำหรับ windows ทั้งหมดที่ยึดตามชั้นเรียน.
โปรแกรมประยุกต์ของคุณสามารถเปลี่ยนการออกแบบของเคอร์เซอร์ได้ โดยใช้ฟังก์ชันSetCursorและระบุหมายเลขอ้างอิงเคอร์เซอร์ที่แตกต่างกัน อย่างไรก็ตาม เมื่อเคอร์เซอร์ย้าย ระบบ redraws เคอร์เซอร์คลาสที่ตำแหน่งที่ตั้งใหม่ เมื่อต้องการป้องกันไม่ให้เคอร์เซอร์คลาสถูกวาดขึ้นมาใหม่ คุณต้องประมวลผลข้อความWM_SETCURSOR แต่ละครั้งที่เคอร์เซอร์ย้ายและป้อนข้อมูลของเมาส์ไม่จับภาพ ระบบส่งข้อความนี้ไปยังหน้าต่างที่เคอร์เซอร์วางอยู่เคลื่อน.
คุณสามารถระบุเคอร์เซอร์ที่แตกต่างกันสำหรับเงื่อนไขที่แตกต่างกันได้ขณะกำลังประมวลผล WM_SETCURSOR ตัวอย่างเช่น ตัวอย่างต่อไปนี้แสดงวิธีการแสดงเคอร์เซอร์hCurs3เมื่อใดก็ ตามที่เคอร์เซอร์ย้ายผ่านไอคอนของโปรแกรมประยุกต์ที่ย่อเล็กสุด.
กรณี WM_SETCURSOR: / / ถ้าหน้าต่างถูกย่อให้เล็กสุด วาดเคอร์เซอร์ hCurs3
/ / ถ้าหน้าต่างถูกย่อ วาดเริ่มต้น / / เคอร์เซอร์ (เคอร์เซอร์ของคลาส)
ถ้า (IsIconic(hwnd)) {SetCursor(hCurs3)
break
}
เมื่อหน้าต่างถูกย่อเล็กสุดไม่ ระบบจะแสดงเคอร์เซอร์คลาส.
คุณสามารถแทนเคอร์เซอร์คลาส โดยใช้ฟังก์ชันSetClassLong ฟังก์ชันนี้เปลี่ยนแปลงการตั้งค่าหน้าต่างเริ่มต้นสำหรับ windows ทั้งหมดของคลาสที่กำหนด ตัวอย่างต่อไปนี้แทนเคอร์เซอร์คลาสอยู่ ด้วยเคอร์เซอร์hCurs2.
/ / เปลี่ยนเคอร์เซอร์สำหรับคลาสหน้าต่างแสดง โดย hwnd
SetClassLong (hwnd, / / หน้าต่างจัดการ GCL_HCURSOR, / / เปลี่ยนเคอร์เซอร์ (ยาว) hCurs2); / / new เคอร์เซอร์
สำหรับข้อมูลเพิ่มเติม ดูหน้าต่างชั้นและป้อนข้อมูลของเมาส์.