การใช้ไอคอน โปรแกรมประยุกต์ของคุณต้องได้รับหมายเลขอ้างอิงที่ไปยังไอคอน ตัวอย่างต่อไปนี้แสดงวิธีการสร้างการจับไอคอนที่แตกต่างกันสอง: หนึ่งสำหรับไอคอนเครื่องหมายอัศเจรีย์มาตรฐานและหนึ่งสำหรับไอคอนกำหนดเองที่รวมเป็นทรัพยากรในแฟ้มทรัพยากรข้อกำหนดของโปรแกรมประยุกต์.
HICON hIcon1 / / HICON hIcon2 จัดการไอคอน / / จัดการไอคอน / / สร้างไอคอนมีคำถามมาตรฐาน
hIcon1 = LoadIcon (NULL, IDI_QUESTION);
/ / สร้างไอคอนกำหนดเองโดยใช้ทรัพยากร
hIcon2 = LoadIcon (hinst, MAKEINTRESOURCE(460))
/ / สร้างไอคอนกำหนดเองในขณะใช้งาน
แอปพลิเคชันควรใช้ไอคอนแบบกำหนดเองเป็นทรัพยากร และควรใช้LoadIconหรือLoadImage ฟังก์ชัน แทนที่จะสร้างไอคอนเวลาเรียกใช้งาน วิธีการนี้เลี่ยงการพึ่งพาอาศัยกันของอุปกรณ์ ช่วยปรับภาษา และช่วยให้แอปพลิเคชันร่วมกันไอคอนบิตแมป อย่างไรก็ตาม ตัวอย่างต่อไปใช้CreateIconในการสร้างไอคอนกำหนดเองในขณะใช้งาน ตามบิตแมป bitmasks ถูกรวมแสดงวิธีที่ระบบแปลงไอคอนบิตแมป bitmasks.
HICON hIcon3; // icon handle
// Yang icon AND bitmask
BYTE ANDmaskIcon[] = {0xFF, 0xFF, 0xFF, 0xFF, // line 1
0xFF, 0xFF, 0xC3, 0xFF, // line 2
0xFF, 0xFF, 0x00, 0xFF, // line 3
0xFF, 0xFE, 0x00, 0x7F, // line 4
0xFF, 0xFC, 0x00, 0x1F, // line 5
0xFF, 0xF8, 0x00, 0x0F, // line 6
0xFF, 0xF8, 0x00, 0x0F, // line 7
0xFF, 0xF0, 0x00, 0x07, // line 8
0xFF, 0xF0, 0x00, 0x03, // line 9
0xFF, 0xE0, 0x00, 0x03, // line 10
0xFF, 0xE0, 0x00, 0x01, // line 11
0xFF, 0xE0, 0x00, 0x01, // line 12
0xFF, 0xF0, 0x00, 0x01, // line 13
0xFF, 0xF0, 0x00, 0x00, // line 14
0xFF, 0xF8, 0x00, 0x00, // line 15
0xFF, 0xFC, 0x00, 0x00, // line 16
0xFF, 0xFF, 0x00, 0x00, // line 17
0xFF, 0xFF, 0x80, 0x00, // line 18
0xFF, 0xFF, 0xE0, 0x00, // line 19
0xFF, 0xFF, 0xE0, 0x01, // line 20
0xFF, 0xFF, 0xF0, 0x01, // line 21
0xFF, 0xFF, 0xF0, 0x01, // line 22
0xFF, 0xFF, 0xF0, 0x03, // line 23
0xFF, 0xFF, 0xE0, 0x03, // line 24
0xFF, 0xFF, 0xE0, 0x07, // line 25
0xFF, 0xFF, 0xC0, 0x0F, // line 26
0xFF, 0xFF, 0xC0, 0x0F, // line 27
0xFF, 0xFF, 0x80, 0x1F, // line 28
0xFF, 0xFF, 0x00, 0x7F, // line 29
0xFF, 0xFC, 0x00, 0xFF, // line 30
0xFF, 0xF8, 0x03, 0xFF, // line 31
0xFF, 0xFC, 0x3F, 0xFF}; // line 32
// Yang icon XOR bitmask
BYTE XORmaskIcon[] = {0x00, 0x00, 0x00, 0x00, // line 1
0x00, 0x00, 0x00, 0x00, // line 2
0x00, 0x00, 0x00, 0x00, // line 3
0x00, 0x00, 0x00, 0x00, // line 4
0x00, 0x00, 0x00, 0x00, // line 5
0x00, 0x00, 0x00, 0x00, // line 6
0x00, 0x00, 0x00, 0x00, // line 7
0x00, 0x00, 0x38, 0x00, // line 8
0x00, 0x00, 0x7C, 0x00, // line 9
0x00, 0x00, 0x7C, 0x00, // line 10
0x00, 0x00, 0x7C, 0x00, // line 11
0x00, 0x00, 0x38, 0x00, // line 12
0x00, 0x00, 0x00, 0x00, // line 13
0x00, 0x00, 0x00, 0x00, // line 14
0x00, 0x00, 0x00, 0x00, // line 15
0x00, 0x00, 0x00, 0x00, // line 16
0x00, 0x00, 0x00, 0x00, // line 17
0x00, 0x00, 0x00, 0x00, // line 18
0x00, 0x00, 0x00, 0x00, // line 19
0x00, 0x00, 0x00, 0x00, // line 20
0x00, 0x00, 0x00, 0x00, // line 21
0x00, 0x00, 0x00, 0x00, // line 22
0x00, 0x00, 0x00, 0x00, // line 23
0x00, 0x00, 0x00, 0x00, // line 24
0x00, 0x00, 0x00, 0x00, // line 25
0x00, 0x00, 0x00, 0x00, // line 26
0x00, 0x00, 0x00, 0x00, // line 27
0x00, 0x00, 0x00, 0x00, // line 28
0x00, 0x00, 0x00, 0x00, // line 29
0x00, 0x00, 0x00, 0x00, // line 30
0x00, 0x00, 0x00, 0x00, // line 31
0x00, 0x00, 0x00, 0x00}; // line 32
hIcon3 = CreateIcon(hinst, // application instance
32, // icon width
32, // icon height
1, // number of XOR planes
1, // number of bits per pixel
ANDmaskIcon, // AND bitmask
XORmaskIcon); // XOR bitmask
การสร้างไอคอนCreateIconกับตารางความจริงต่อไปและการ XOR bitmasks และ.
| และ bitmask | XOR bitmask | จอแสดงผล |
|---|---|---|
| 0 | 0 | สีดำ |
| 0 | 1 | สีขาว |
| 1 | 0 | หน้าจอ |
| 1 | 1 | กลับหน้าจอ |
ก่อนที่จะปิดบัญชี โปรแกรมประยุกต์ของคุณต้องใช้DestroyIconเพื่อทำลายไอคอนใด ๆ ที่สร้าง โดยใช้CreateIconIndirect มันไม่จำเป็นต้องทำลายไอคอนที่สร้างขึ้น โดยฟังก์ชันอื่น ๆ.