สร้างเคอร์เซอร์

ตัวอย่างต่อไปนี้สร้างสองเคอร์เซอร์จับ: หนึ่งสำหรับเคอร์เซอร์ 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 มันไม่จำเป็นต้องทำลายเคอร์เซอร์ที่สร้างขึ้น โดยฟังก์ชันอื่น ๆ.

Index