아이콘을 사용 하려면 응용 프로그램 아이콘에 대 한 핸들을 가져와야 합니다. 다음 예제에는 두 개의 다른 아이콘 핸들을 만드는 방법을 보여 줍니다: 표준 느낌표 아이콘 및 사용자 지정 응용 프로그램의 리소스 정의 파일에 리소스로 포함 된 아이콘에 대 한.
HICON hIcon1; / / 아이콘 처리 HICON hIcon2; / 아이콘을 처리 하는 / / / 표준 질문 아이콘을 만듭니다.
hIcon1 = LoadIcon (NULL, IDI_QUESTION);
/ / 사용자 지정 아이콘을 기반으로 리소스를 만듭니다.
hIcon2 = LoadIcon (hinst, MAKEINTRESOURCE(460));
/ / 실행 시 사용자 정의 아이콘을 만들
응용 프로그램 리소스와 사용자 지정 아이콘을 구현 해야 하 고 LoadIcon 또는 LoadImage사용 해야 기능, 보다는 오히려 런타임에 아이콘을 만듭니다. 이 접근 방지 장치 의존 지역화를 단순화 하 고 응용 프로그램 아이콘 비트맵을 공유할 수 있습니다. 그러나, 다음 예제에서는 CreateIcon 를 사용 하 여 비트맵 비트 마스크;에 따라 런타임에 사용자 지정 아이콘을 만들 시스템 아이콘 비트맵 비트 마스크를 해석 하는 방법을 설명 하는 것이 포함 됩니다.
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 적용 다음 진리표 AND 및 XOR 비트 마스크.
| 그리고 마스크 | XOR 마스크 | 디스플레이 |
|---|---|---|
| 0 | 0 | 블랙 |
| 0 | 1 | 화이트 |
| 1 | 0 | 화면 |
| 1 | 1 | 역방향 화면 |
닫기, 전에 응용 프로그램 CreateIconIndirect를 사용 하 여 만든 모든 아이콘을 파괴 DestroyIcon 을 사용 해야 합니다. 다른 함수에 의해 만들어진 아이콘을 파괴 하는 것이 필요 하지 않습니다.