Π ΡΡΡΠΊΠΈΠΉ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΠΏΠΎ Win32 API
ΠΡ ΠΈΠ·Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅Π»Ρ fb2.
ΠΠ°Π½Π½Π°Ρ ΠΊΠ½ΠΈΠ³Π° (ΠΊΡΠΎΠΌΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅Π³ΠΎ) ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ Π½Π΅ Π²ΡΠ΅ ΡΠΈΡΠ°Π»ΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ.
ΠΠ°Π²Π°ΠΉΡΠ΅, ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌ Π²Π°ΡΡ ΡΠΈΡΠ°Π»ΠΊΡ.
1 ΡΡΡΠΎΠΊΠ°, 1 ΡΡΠΎΠ»Π±Π΅Ρ
1 ΡΡΡΠΎΠΊΠ°, 2 ΡΡΠΎΠ»Π±Π΅Ρ
1 ΡΡΡΠΎΠΊΠ°, 3 ΡΡΠΎΠ»Π±Π΅Ρ
2 ΡΡΡΠΎΠΊΠ° 1 ΡΡΠΎΠ»Π±Π΅Ρ
2 ΡΡΡΠΎΠΊΠ° 2 ΡΡΠΎΠ»Π±Π΅Ρ
ΡΠΏΠΎΡΡ, ΡΡΠΎ Π½Π΅ Π΄ΠΎΠ³Π°Π΄Π°Π΅ΡΠ΅ΡΡ,
ΠΊΠ°ΠΊΠ°Ρ ΡΡΠΎ ΡΡΡΠΎΠΊΠ°
ΠΡΠ»ΠΈ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΈΠΌΠΏΠ°ΡΠΈΡΠ½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ Π²Ρ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ ΡΠ°ΠΊΠΎΠ΅:
1 ΡΡΡΠΎΠΊΠ°, 1 ΡΡΠΎΠ»Π±Π΅Ρ
1 ΡΡΡΠΎΠΊΠ°, 2 ΡΡΠΎΠ»Π±Π΅Ρ
1 ΡΡΡΠΎΠΊΠ°, 3 ΡΡΠΎΠ»Π±Π΅Ρ
2 ΡΡΡΠΎΠΊΠ° 1 ΡΡΠΎΠ»Π±Π΅Ρ
2 ΡΡΡΠΎΠΊΠ° 2 ΡΡΠΎΠ»Π±Π΅Ρ
...
ΠΠ½Π°ΡΠΈΡ Π²Π°ΡΠ° ΡΠΈΡΠ°Π»ΠΊΠ° ΡΠ°Π±Π»ΠΈΡ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ, ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΆΠ°Π»Ρ, Ρ.ΠΊ. Π² ΠΊΠ½ΠΈΠ³Π΅ ΠΈΡ 49.
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ?... ΠΡ, Ρ ΠΏΠΎΡΡΡΠΏΠ°Ρ ΡΠ°ΠΊ. Π Mozilla Firefox ΠΏΠΎΡΡΠ°Π²ΠΈΠ» ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ fb2, ΠΈ Π²ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ΅ΡΠ΅Π½Ρ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ...
ΠΠΎΡ ΠΈ Π²ΡΠ΅.
Π£ΡΠΏΠ΅Ρ ΠΎΠ² w_cat.
Π¦Π²Π΅ΡΠ°
CreatePalette
Π€ΡΠ½ΠΊΡΠΈΡ CreatePalette ΡΠΎΠ·Π΄Π°Π΅Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ ΡΠ²Π΅ΡΠΎΠ²ΡΡ ΠΏΠ°Π»ΠΈΡΡΡ.
HPALETTE CreatePalette (
CONST LOGPALETTE * lplgpl // ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ ΡΠ²Π΅ΡΠΎΠ²ΡΡ ΠΏΠ°Π»ΠΈΡΡΡ
);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
lplgpl - ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΡΡΡΠΊΡΡΡΡ ΡΠΈΠΏΠ° LOGPALETTE , ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ²Π΅ΡΠ°Ρ Π² Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°Π»ΠΈΡΡΠ΅.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠ°Π»ΠΈΡΡΡ.
Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ NULL . ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ GetLastError .
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΏΠ°Π»ΠΈΡΡΠ°ΠΌΠΈ, Π²ΡΠ·Π²Π°Π² GetDeviceCaps ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ² ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ RASTERCAPS .
Π‘ΠΎΠ·Π΄Π°Π² Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠ°Π»ΠΈΡΡΡ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π΅Π΅ Π²ΡΠ±ΡΠ°ΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π²ΡΠ·Π²Π°Π² ΡΡΠ½ΠΊΡΠΈΡ SelectPalette . ΠΠ°Π»ΠΈΡΡΠ°, Π²ΡΠ±ΡΠ°Π½Π½Π°Ρ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ RealizePalette .
ΠΠΎΠ³Π΄Π° Π²Ρ Π±ΠΎΠ»Π΅Π΅ Π½Π΅ Π½ΡΠΆΠ΄Π°Π΅ΡΠ΅ΡΡ Π² ΠΏΠ°Π»ΠΈΡΡΠ΅, Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ DeleteObject Π΄Π»Ρ Π΅Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ.
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
DeleteObject, GetDeviceCaps, LOGPALETTE, RealizePalette, SelectPalette .
GetNearestColor
Π€ΡΠ½ΠΊΡΠΈΡ GetNearestColor Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΡΡΠ΅Π΅ ΡΠ²Π΅Ρ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΏΠ°Π»ΠΈΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
COLORREF GetNearestColor (
HDC hdc , // Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°
COLORREF crColor // ΠΏΠΎΠ΄Π±ΠΈΡΠ°Π΅ΠΌΡΠΉ ΡΠ²Π΅Ρ
);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
hdc - ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
crColor - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΡΡΠ΅Π΅ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠ²Π΅Ρ.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΡΠ²Π΅Ρ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΏΠ°Π»ΠΈΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π΄Π°Π½Π½ΠΎΠΌΡ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ CLR _ INVALID . ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ GetLastError .
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
GetDeviceCaps, GetNearestPaletteIndex, COLORREF .
GetSystemPaletteEntries
Π€ΡΠ½ΠΊΡΠΈΡ GetSystemPaletteEntries ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ Π² ΠΏΠ°Π»ΠΈΡΡΡ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΏΠ°Π»ΠΈΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²ΡΠ·Π°Π½Π° Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (device context).
UINT GetSystemPaletteEntries (
HDC hdc , // Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°
UINT iStartIndex , // ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌΠΎΠ΅ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² ΠΏΠ°Π»ΠΈΡΡΡ
UINT nEntries , // ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌΡΡ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ Π² ΠΏΠ°Π»ΠΈΡΡΡ
LPPALETTEENTRY lppe // ΠΌΠ°ΡΡΠΈΠ², ΠΏΠΎΠ»ΡΡΠ°ΡΡΠΈΠΉ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π² ΠΏΠ°Π»ΠΈΡΡΡ
);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
hdc - Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°
iStartIndex - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌΠΎΠ΅ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΏΠ°Π»ΠΈΡΡΡ.
nEntries - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌΡΡ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΏΠ°Π»ΠΈΡΡΡ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ.
lppe - ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΡΠΊΡΡΡ ΡΠΈΠΏΠ° PALETTEENTRY Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ Π² ΠΏΠ°Π»ΠΈΡΡΡ. Π§ΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π½Π΅ ΠΌΠ΅Π½ΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ nEntries . ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° lppe ΡΠ°Π²Π½ΠΎ NULL, ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΏΠ°Π»ΠΈΡΡΡ.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ, ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π½ΡΡ ΠΈΠ· ΠΏΠ°Π»ΠΈΡΡΡ.
Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½ΡΠ»Ρ.
Windows NT/2000/XP: ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ GetLastError.
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΏΠ°Π»ΠΈΡΡΠΎΠΉ, Π²ΡΠ·Π²Π°Π² ΡΡΠ½ΠΊΡΠΈΡ GetDeviceCaps Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ RASTERCAPS.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
Windows NT/2000/XP: ΠΠΊΠ»ΡΡΠ΅Π½Π° Π² Windows NT 3.1 ΠΈ Π²ΡΡΠ΅.
Windows 95/98/Me: ΠΠΊΠ»ΡΡΠ΅Π½Π° Π² Windows 95 ΠΈ Π²ΡΡΠ΅.
ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ: ΠΠ±ΡΡΠ²Π»Π΅Π½Π° Π² Wingdi.h; ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡWindows.h.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°: ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Gdi32.lib.
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
GetDeviceCaps, GetPaletteEntries, PALETTEENTRY.
ResizePalette
Π€ΡΠ½ΠΊΡΠΈΡ ResizePalette ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΈΠ»ΠΈ ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°Π»ΠΈΡΡΡ, ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ.
BOOL ResizePalette (
HPALETTE hpal , // Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°Π»ΠΈΡΡΡ
UINT nEntries // ΡΠΈΡΠ»ΠΎ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ Π² Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠ°Π»ΠΈΡΡΡ
);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
hpal - ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠ°Π»ΠΈΡΡΡ.
nEntries - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΡΠ»ΠΎ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ Π² ΠΏΠ°Π»ΠΈΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΅Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½ΡΠ»Ρ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ GetLastError .
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΏΠ°Π»ΠΈΡΡΠΎΠΉ, Π²ΡΠ·Π²Π°Π² ΡΡΠ½ΠΊΡΠΈΡ GetDeviceCaps Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ RASTERCAPS .
ΠΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ResizePalette Π΄Π»Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΏΠ°Π»ΠΈΡΡΡ, Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ, ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ Π² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ ΠΏΠ°Π»ΠΈΡΡΠ΅, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ. ΠΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ResizePalette Π΄Π»Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΏΠ°Π»ΠΈΡΡΡ, ΡΠΎ Π½ΠΎΠ²ΡΠΌ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡΠΌ Π² ΠΏΠ°Π»ΠΈΡΡΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΡΠ½ΡΠΉ ΡΠ²Π΅Ρ ΠΈ ΠΈΡ ΡΠ»Π°Π³ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π² Π½ΡΠ»Ρ.
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
GetDeviceCaps .
UpdateColors
Π€ΡΠ½ΠΊΡΠΈΡ UpdateColors ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠΈΡ ΡΠ²Π΅ΡΠΎΠ² Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°Π»ΠΈΡΡΡ.
BOOL UpdateColors (
HDC hdc // Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°
);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
hdc - ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½ΡΠ»Ρ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ GetLastError .
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΏΠ°Π»ΠΈΡΡΠΎΠΉ, Π²ΡΠ·Π²Π°Π² ΡΡΠ½ΠΊΡΠΈΡ GetDeviceCaps Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ RASTERCAPS .
ΠΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°Π»ΠΈΡΡΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ UpdateColors Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠ΅ Π΅Π³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΈ ΡΠΌΠ΅Π½Π΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΏΠ°Π»ΠΈΡΡΡ.
Π€ΡΠ½ΠΊΡΠΈΡ UpdateColors ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠ° Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ UpdateColors Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠ°, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π½Π° ΡΠ²Π΅ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΏΠ°Π»ΠΈΡΡΡ, Π²ΡΠ·ΠΎΠ² ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ.
Π€ΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM _ PALETTECHANGED .
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
GetDeviceCaps, RealizePalette .
ΠΡΠΎΠΌΡ
Π€ΡΠ½ΠΊΡΠΈΠΈ
AddAtom
Π€ΡΠ½ΠΊΡΠΈΡ AddAtom Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΡΡΠΎΠΊΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΡΠ°Π±Π»ΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π°ΡΠΎΠΌΠΎΠ² ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (Π°ΡΠΎΠΌ), ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΡΡΠ΅Π΅ ΡΡΡΠΎΠΊΡ.
ATOM AddAtom (
LPCTSTR lpString // ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌΡΡ ΡΡΡΠΎΠΊΡ
);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
lpString - ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌΡΡ ΡΡΡΠΎΠΊΡ, Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡΡΡ Π½ΡΠ»Π΅ΠΌ. Π‘ΡΡΠΎΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π² 255 Π±Π°ΠΉΡ. Π‘ΡΡΠΎΠΊΠΈ, ΠΎΡΠ»ΠΈΡΠ°ΡΡΠΈΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΎΠΌ, ΡΡΠΈΡΠ°ΡΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠΌΠΈ.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π°ΡΠΎΠΌ.
Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½ΡΠ»Ρ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ GetLastError .