lpcf - ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΡΡΡΠΊΡΡΡΡ ΡΠΈΠΏΠ° CHOOSEFONT , ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. ΠΠΎΠ³Π΄Π° ChooseFont Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΡΡΡΡΠΊΡΡΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΡΠΈΡΡΠ΅.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΠ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π§Π»Π΅Π½Ρ ΡΡΡΡΠΊΡΡΡΡ ΡΠΈΠΏΠ° CHOOSEFONT ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π²ΡΠ±ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΆΠ°Π» ΠΊΠ½ΠΎΠΏΠΊΡ Cancel, ΠΈΠ»ΠΈ Π·Π°ΠΊΡΡΠ» Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, ΠΈΠ»ΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ° - Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½ΡΠ»Ρ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ CommDlgExtendedError , ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²Π΅ΡΠ½ΡΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ:
CDERR_FINDRESFAILURE
CDERR_NOHINSTANCE
CDERR_INITIALIZATION
CDERR_NOHOOK
CDERR_LOCKRESFAILURE
CDERR_NOTEMPLATE
CDERR_LOADRESFAILURE
CDERR_STRUCTSIZE
CDERR_LOADSTRFAILURE
CFERR_MAXLESSTHANMIN
CDERR_MEMALLOCFAILURE
CFERR_NOFONTS
CDERR_MEMLOCKFAILURE
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ-Π»ΠΎΠ²ΡΡΠΊΡ (hook procedure) CCHookProc Π΄Π»Ρ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. Π€ΡΠ½ΠΊΡΠΈΡ-Π»ΠΎΠ²ΡΡΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌΡ ΠΎΠΊΠ½Ρ. ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ»Π°Π³ CC_ENABLEHOOK Π² ΡΠ»Π΅Π½Π΅ Flags ΡΡΡΡΠΊΡΡΡΡ ΡΠΈΠΏΠ° CHOOSEFONT ΠΈ ΡΠΊΠ°ΠΆΠΈΡΠ΅ Π°Π΄ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ»Π΅Π½Π΅ lpfnHook .
Π€ΡΠ½ΠΊΡΠΈΡ-Π»ΠΎΠ²ΡΡΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌΡ ΠΎΠΊΠ½Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM _ CHOOSEFONT _ GETLOGFONT, WM _ CHOOSEFONT _ SETFLAGS ΠΈ WM _ CHOOSEFONT _ SETLOGFONT Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ΅ΠΊΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ»Π°Π³ΠΎΠ² Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅.
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
CFHookProc, CHOOSEFONT, CommDlgExtendedError, LOGFONT , WM_CHOOSEFONT_GETLOGFONT, WM_CHOOSEFONT_SETFLAGS, WM_CHOOSEFONT_SETLOGFONT.
ΠΠΊΠΎΠ½ΠΊΠΈ
CopyIcon
Π€ΡΠ½ΠΊΡΠΈΡ CopyIcon ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ Π·Π°Π΄Π°Π½Π½ΡΡ ΠΈΠΊΠΎΠ½ΠΊΡ Π² ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ.
HICON CopyIcon (
HICON hIcon // Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΈΠΊΠΎΠ½ΠΊΠΈ
);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
hIcon - ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌΡΡ ΠΈΠΊΠΎΠ½ΠΊΡ.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΊΠΎΠΏΠΈΡ ΠΈΠΊΠΎΠ½ΠΊΠΈ.
Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ NULL . ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ GetLastError .
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
Π€ΡΠ½ΠΊΡΠΈΡ CopyIcon ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΈΠΊΠΎΠ½ΠΊΠΈ, Π½Π°Ρ ΠΎΠ΄ΡΡΠ΅ΠΉΡΡ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅. ΠΡΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠΊΠΎΠ½ΠΊΡ.
Π‘ΠΌ . ΡΠ°ΠΊΠΆΠ΅
CopyCursor, DrawIcon, DrawIconEx.
CreateIcon
Π€ΡΠ½ΠΊΡΠΈΡ CreateIcon ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈΠΊΠΎΠ½ΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ, ΡΠ²Π΅ΡΠ° ΠΈ Π±ΠΈΡΠΎΠ²ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ.
HICON CreateIcon (
HINSTANCE hInstance , // Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
int nWidth , // ΡΠΈΡΠΈΠ½Π° ΠΈΠΊΠΎΠ½ΠΊΠΈ
int nHeight , // Π²ΡΡΠΎΡΠ° ΠΈΠΊΠΎΠ½ΠΊΠΈ
BYTE cPlanes , // ΡΠΈΡΠ»ΠΎ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠ΅ΠΉ Π² Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΠΊΠ΅ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ ΠΠΠ
BYTE cBitsPixel , // ΡΠΈΡΠ»ΠΎ Π±ΠΈΡ Π½Π° ΠΏΠΈΠΊΡΠ΅Π»Ρ
// Π² Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΠΊΠ΅ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ ΠΠΠ
CONST BYTE * lpbANDbits , // ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΌΠ°ΡΡΠΈΠ² Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΠΊΠΈ Π
CONST BYTE * lpbXORbits // ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΌΠ°ΡΡΠΈΠ² Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΠΊΠΈ ΠΠΠ
);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
hInstance - ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΠΎΠ·Π΄Π°ΡΡΠ΅Π³ΠΎ ΠΈΠΊΠΎΠ½ΠΊΡ.
nWidth - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΡΠΈΠ½Ρ ΠΈΠΊΠΎΠ½ΠΊΠΈ Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ .
nHeight - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²ΡΡΠΎΡΡ ΠΈΠΊΠΎΠ½ΠΊΠΈ Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ .
cPlanes - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΡΠ»ΠΎ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠ΅ΠΉ Π² Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΠΊΠ΅ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ ΠΠΠ ΠΈΠΊΠΎΠ½ΠΊΠΈ.
cBitsPixel - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΡΠ»ΠΎ Π±ΠΈΡ Π½Π° ΠΏΠΈΠΊΡΠ΅Π»Ρ Π² Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΠΊΠ΅ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ ΠΠΠ ΠΈΠΊΠΎΠ½ΠΊΠΈ.
lpbANDbits - ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΌΠ°ΡΡΠΈΠ² Π±Π°ΠΉΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±ΠΈΡΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΌΠ°ΡΠΊΠΈ Π ΠΈΠΊΠΎΠ½ΠΊΠΈ. Π’Π°ΠΊΠ°Ρ Π±ΠΈΡΠΎΠ²Π°Ρ ΠΌΠ°ΡΠΊΠ° ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΌΠΎΠ½ΠΎΡ ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
lpbXORbits - ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΌΠ°ΡΡΠΈΠ² Π±Π°ΠΉΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±ΠΈΡΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΌΠ°ΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ ΠΠΠ ΠΈΠΊΠΎΠ½ΠΊΠΈ. Π’Π°ΠΊΠ°Ρ Π±ΠΈΡΠΎΠ²Π°Ρ ΠΌΠ°ΡΠΊΠ° ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠ΅ ΠΎΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠ²Π΅ΡΠ½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΈΠΊΠΎΠ½ΠΊΠΈ.
Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½ΡΠ»Ρ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ GetLastError .
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² nWidth ΠΈ nHeight Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΈΡΠΈΠ½Ρ ΠΈ Π²ΡΡΠΎΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ΅ΠΊΡΡΠΈΠΌ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠΌ Π΄ΠΈΡΠΏΠ»Π΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠΊΠΎΠ½ΠΊΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ². ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΈΡΠΈΠ½Π° ΠΈ Π²ΡΡΠΎΡΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠΌ Π΄ΠΈΡΠΏΠ»Π΅Ρ, Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ GetSystemMetrics , ΡΠΊΠ°Π·Π°Π² Π·Π½Π°ΡΠ΅Π½ΠΈΡ SM _ CXICON ΠΈ SM _ CYICON .
CreateIcon ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΡΡΠΈΠ½Π½ΠΎΡΡΠΈ Π΄Π»Ρ Π±ΠΈΡΠΎΠ²ΡΡ ΠΌΠ°ΡΠΎΠΊ.
ΠΠΈΡΠΎΠ²Π°Ρ ΠΌΠ°ΡΠΊΠ° Π
ΠΠΈΡΠΎΠ²Π°Ρ ΠΌΠ°ΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ ΠΠΠ
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
0
0
Π§Π΅ΡΠ½ΠΎΠ΅.
0
1
ΠΠ΅Π»ΠΎΠ΅.
1
0
Π¦Π²Π΅Ρ ΡΠΊΡΠ°Π½Π°.
1
1
ΠΠ±ΡΠ°ΡΠ½ΡΠΉ ΡΠ²Π΅Ρ ΡΠΊΡΠ°Π½Π°.
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
GetSystemMetrics .
CreateIconFromResource
Π€ΡΠ½ΠΊΡΠΈΡ CreateIconFromResource ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈΠΊΠΎΠ½ΠΊΡ ΠΈΠ»ΠΈ ΠΊΡΡΡΠΎΡ ΠΈΠ· Π±ΠΈΡΠΎΠ² ΡΠ΅ΡΡΡΡΠ°, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΡ ΠΈΠΊΠΎΠ½ΠΊΡ.
HICON CreateIconFromResource (
PBYTE presbits , // ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π±ΠΈΡΡ ΡΠ΅ΡΡΡΡΠ°
DWORD dwResSize , // ΡΠΈΡΠ»ΠΎ Π±ΠΈΡ Π² Π±ΡΡΠ΅ΡΠ΅
BOOL fIcon , // ΡΠ»Π°Π³ ΠΈΠΊΠΎΠ½ΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΡΡΡΠΎΡΠ°
DWORD dwVer // Π²Π΅ΡΡΠΈΡ ΡΠΎΡΠΌΠ°ΡΠ° Windows
);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
presbits - ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π±ΡΡΠ΅Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π±ΠΈΡΡ ΡΠ΅ΡΡΡΡΠ° ΠΈΠΊΠΎΠ½ΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΡΡΡΠΎΡΠ°. ΠΡΠΈ Π±ΠΈΡΡ ΠΎΠ±ΡΡΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ LookupIconIdFromDirectory (Π² Windows 95 Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ LookupIconIdFromDirectoryEx ) ΠΈ LoadResource .
dwResSize - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ, Π² Π±Π°ΠΉΡΠ°Ρ , Π½Π°Π±ΠΎΡΠ° Π±ΠΈΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ presbits .
fIcon - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π±ΡΠ΄Π΅Ρ Π»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ ΠΈΠΊΠΎΠ½ΠΊΠ° ΠΈΠ»ΠΈ ΠΊΡΡΡΠΎΡ. ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠ°Π²Π½ΠΎ TRUE, ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈΠΊΠΎΠ½ΠΊΠ°. ΠΠ½Π°ΡΠ΅ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΊΡΡΡΠΎΡ.
dwVer - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½ΠΎΠΌΠ΅Ρ Π²Π΅ΡΡΠΈΠΈ ΡΠΎΡΠΌΠ°ΡΠ° ΠΈΠΊΠΎΠ½ΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΡΡΡΠΎΡΠ° Π΄Π»Ρ Π±ΠΈΡΠΎΠ² ΡΠ΅ΡΡΡΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ presbits . ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ:
Π€ΠΎΡΠΌΠ°Ρ
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅
Windows 2. x
0x00020000
Windows 3.x
0x00030000
ΠΡΠ΅ Win 32 ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΈΠΊΠΎΠ½ΠΎΠΊ ΠΈ ΠΊΡΡΡΠΎΡΠΎΠ² ΡΠΎΡΠΌΠ°Ρ Windows 3. x .
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΈΠΊΠΎΠ½ΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΡΡΡΠΎΡΠ°.
Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½ΡΠ»Ρ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ GetLastError .
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
Π€ΡΠ½ΠΊΡΠΈΠΈ CreateIconFromResource, CreateIconIndirect, GetIconInfo ΠΈ LookupIconIdFromDirectory (Π² Windows 95 ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ CreateIconFromResourceEx ΠΈ LookupIconIdFromDirectoryEx ) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ°ΠΌ ΠΈΠΊΠΎΠ½ΠΎΠΊ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡΡΡΡ Π²ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
CreateIconFromResourceEx, CreateIconIndirect, GetIconInfo, LoadResource, LookupIconIdFromDirectory, LookupIconIdFromDirectoryEx .
CreateIconFromResourceEx
Π€ΡΠ½ΠΊΡΠΈΡ CreateIconFromResourceEx ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈΠΊΠΎΠ½ΠΊΡ ΠΈΠ»ΠΈ ΠΊΡΡΡΠΎΡ ΠΈΠ· Π±ΠΈΡΠΎΠ² ΡΠ΅ΡΡΡΡΠ°, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΡ ΠΈΠΊΠΎΠ½ΠΊΡ.
HICON CreateIconFromResourceEx (
PBYTE pbIconBits , // ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π±ΠΈΡΡ ΡΠ΅ΡΡΡΡΠ°
DWORD cbIconBits , // ΡΠΈΡΠ»ΠΎ Π±ΠΈΡ Π² Π±ΡΡΠ΅ΡΠ΅
BOOL fIcon , // ΡΠ»Π°Π³ ΠΈΠΊΠΎΠ½ΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΡΡΡΠΎΡΠ°
DWORD dwVersion , // Π²Π΅ΡΡΠΈΡ ΡΠΎΡΠΌΠ°ΡΠ° Windows
int cxDesired , // ΠΆΠ΅Π»Π°Π΅ΠΌΠ°Ρ ΡΠΈΡΠΈΠ½Π° ΠΈΠΊΠΎΠ½ΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΡΡΡΠΎΡΠ°
int cyDesired , // ΠΆΠ΅Π»Π°Π΅ΠΌΠ°Ρ Π²ΡΡΠΎΡΠ° ΠΈΠΊΠΎΠ½ΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΡΡΡΠΎΡΠ°
UINT uFlags
);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
pbIconBits - ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π±ΡΡΠ΅Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π±ΠΈΡΡ ΡΠ΅ΡΡΡΡΠ° ΠΈΠΊΠΎΠ½ΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΡΡΡΠΎΡΠ°. ΠΡΠΈ Π±ΠΈΡΡ ΠΎΠ±ΡΡΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ LookupIconIdFromDirectory (Π² Windows 95 Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ LookupIconIdFromDirectoryEx ) ΠΈ LoadResource .
cbIconBits - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ, Π² Π±Π°ΠΉΡΠ°Ρ , Π½Π°Π±ΠΎΡΠ° Π±ΠΈΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ pbIconBits .
fIcon - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π±ΡΠ΄Π΅Ρ Π»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ ΠΈΠΊΠΎΠ½ΠΊΠ° ΠΈΠ»ΠΈ ΠΊΡΡΡΠΎΡ. ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠ°Π²Π½ΠΎ TRUE, ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈΠΊΠΎΠ½ΠΊΠ°. ΠΠ½Π°ΡΠ΅ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΊΡΡΡΠΎΡ.
dwVersion - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½ΠΎΠΌΠ΅Ρ Π²Π΅ΡΡΠΈΠΈ ΡΠΎΡΠΌΠ°ΡΠ° ΠΈΠΊΠΎΠ½ΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΡΡΡΠΎΡΠ° Π΄Π»Ρ Π±ΠΈΡΠΎΠ² ΡΠ΅ΡΡΡΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ pbIconBits . ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ:
Π€ΠΎΡΠΌΠ°Ρ
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅