ตัวอย่างต่อไปนี้สร้างสองเคอร์เซอร์จับ: หนึ่งสำหรับเคอร์เซอร์ hourglass มาตรฐานและหนึ่งสำหรับเคอร์เซอร์แบบกำหนดเองรวมเป็นทรัพยากรในแฟ้มทรัพยากรข้อกำหนดของโปรแกรมประยุกต์.
HINSTANCE hinst / / จัดการกับปัจจุบันอินสแตนซ์ HCURSOR hCurs1, hCurs2 / / เคอร์เซอร์จับ / / สร้างเคอร์เซอร์ hourglass มาตรฐาน
hCurs1 = LoadCursor (NULL, IDC_WAIT);
/ / สร้างเคอร์เซอร์แบบกำหนดเองโดยใช้ทรัพยากร
hCurs2 = LoadCursor (hinst, MAKEINTRESOURCE(240))
คุณควรใช้เคอร์เซอร์แบบกำหนดเองเป็นแหล่งข้อมูล แทนที่สร้างเคอร์เซอร์ในเวลาเรียกใช้งาน ใช้ฟังก์ชันLoadCursor, LoadCursorFromFileหรือLoadImageเพื่อหลีกเลี่ยงการพึ่งพาอาศัยอุปกรณ์กัน การปรับภาษาง่าย ๆ และเปิดใช้งานโปรแกรมประยุกต์ร่วมกันออกแบบเคอร์เซอร์.
ตัวอย่างต่อไปนี้ใช้ฟังก์ชันCreateCursorเพื่อสร้างเคอร์เซอร์แบบกำหนดเองในขณะใช้งาน รวมตัวอย่างต่อไปนี้แสดงวิธีที่ระบบแปลงเคอร์เซอร์ bitmasks.
HINSTANCE hinst; // handle to current instance
HCURSOR hCurs1, hCurs2; // cursor handles
HCURSOR hCurs3; // cursor handle
// Yin cursor AND bitmask
BYTE ANDmaskCursor[] =
{
0xFF, 0xFC, 0x3F, 0xFF, // line 1
0xFF, 0xC0, 0x1F, 0xFF, // line 2
0xFF, 0x00, 0x3F, 0xFF, // line 3
0xFE, 0x00, 0xFF, 0xFF, // line 4
0xF7, 0x01, 0xFF, 0xFF, // line 5
0xF0, 0x03, 0xFF, 0xFF, // line 6
0xF0, 0x03, 0xFF, 0xFF, // line 7
0xE0, 0x07, 0xFF, 0xFF, // line 8
0xC0, 0x07, 0xFF, 0xFF, // line 9
0xC0, 0x0F, 0xFF, 0xFF, // line 10
0x80, 0x0F, 0xFF, 0xFF, // line 11
0x80, 0x0F, 0xFF, 0xFF, // line 12
0x80, 0x07, 0xFF, 0xFF, // line 13
0x00, 0x07, 0xFF, 0xFF, // line 14
0x00, 0x03, 0xFF, 0xFF, // line 15
0x00, 0x00, 0xFF, 0xFF, // line 16
0x00, 0x00, 0x7F, 0xFF, // line 17
0x00, 0x00, 0x1F, 0xFF, // line 18
0x00, 0x00, 0x0F, 0xFF, // line 19
0x80, 0x00, 0x0F, 0xFF, // line 20
0x80, 0x00, 0x07, 0xFF, // line 21
0x80, 0x00, 0x07, 0xFF, // line 22
0xC0, 0x00, 0x07, 0xFF, // line 23
0xC0, 0x00, 0x0F, 0xFF, // line 24
0xE0, 0x00, 0x0F, 0xFF, // line 25
0xF0, 0x00, 0x1F, 0xFF, // line 26
0xF0, 0x00, 0x1F, 0xFF, // line 27
0xF8, 0x00, 0x3F, 0xFF, // line 28
0xFE, 0x00, 0x7F, 0xFF, // line 29
0xFF, 0x00, 0xFF, 0xFF, // line 30
0xFF, 0xC3, 0xFF, 0xFF, // line 31
0xFF, 0xFF, 0xFF, 0xFF // line 32
};
// Yin cursor XOR bitmask
BYTE XORmaskCursor[] =
{
0x00, 0x00, 0x00, 0x00, // line 1
0x00, 0x03, 0xC0, 0x00, // line 2
0x00, 0x3F, 0x00, 0x00, // line 3
0x00, 0xFE, 0x00, 0x00, // line 4
0x0E, 0xFC, 0x00, 0x00, // line 5
0x07, 0xF8, 0x00, 0x00, // line 6
0x07, 0xF8, 0x00, 0x00, // line 7
0x0F, 0xF0, 0x00, 0x00, // line 8
0x1F, 0xF0, 0x00, 0x00, // line 9
0x1F, 0xE0, 0x00, 0x00, // line 10
0x3F, 0xE0, 0x00, 0x00, // line 11
0x3F, 0xE0, 0x00, 0x00, // line 12
0x3F, 0xF0, 0x00, 0x00, // line 13
0x7F, 0xF0, 0x00, 0x00, // line 14
0x7F, 0xF8, 0x00, 0x00, // line 15
0x7F, 0xFC, 0x00, 0x00, // line 16
0x7F, 0xFF, 0x00, 0x00, // line 17
0x7F, 0xFF, 0x80, 0x00, // line 18
0x7F, 0xFF, 0xE0, 0x00, // line 19
0x3F, 0xFF, 0xE0, 0x00, // line 20
0x3F, 0xC7, 0xF0, 0x00, // line 21
0x3F, 0x83, 0xF0, 0x00, // line 22
0x1F, 0x83, 0xF0, 0x00, // line 23
0x1F, 0x83, 0xE0, 0x00, // line 24
0x0F, 0xC7, 0xE0, 0x00, // line 25
0x07, 0xFF, 0xC0, 0x00, // line 26
0x07, 0xFF, 0xC0, 0x00, // line 27
0x01, 0xFF, 0x80, 0x00, // line 28
0x00, 0xFF, 0x00, 0x00, // line 29
0x00, 0x3C, 0x00, 0x00, // line 30
0x00, 0x00, 0x00, 0x00, // line 31
0x00, 0x00, 0x00, 0x00 // line 32
};
// Create a custom cursor at run time.
hCurs3 = CreateCursor( hinst, // app instance
19, // horizontal position of hot spot
2, // vertical position of hot spot
32, // cursor width
32, // cursor height
ANDmaskCursor, // AND bitmask
XORmaskCursor ); // XOR bitmask
เมื่อต้องการสร้างเคอร์เซอร์CreateCursorกับตารางความจริงต่อไปและการ XOR bitmasks และ.
| และ bitmask | XOR bitmask | จอแสดงผล |
|---|---|---|
| 0 | 0 | สีดำ |
| 0 | 1 | สีขาว |
| 1 | 0 | หน้าจอ |
| 1 | 1 | กลับหน้าจอ |
ดูข้อมูลเพิ่มเติม บิตแมป.
ก่อนที่จะปิดบัญชี คุณต้องใช้ฟังก์ชันDestroyCursorเพื่อทำลายเคอร์เซอร์ใด ๆ ที่คุณสร้างขึ้นด้วยCreateCursor มันไม่จำเป็นต้องทำลายเคอร์เซอร์ที่สร้างขึ้น โดยฟังก์ชันอื่น ๆ.