Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠΊΡΠ°Π½Π° ΠΏΡΠ΅ΠΆΠ΄Π΅, ΡΠ΅ΠΌ ΠΎΠ½ΠΎ ΡΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠ²ΠΎΠ΄Π° Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΎΠΊΠ½Π°, Π½ΡΠΆΠ΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΡΠΈΠ½ΡΠ΅ΡΠ° ΠΏΡΠ΅ΠΆΠ΄Π΅, ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠ²ΠΎΠ΄Π° Π½Π° ΠΏΡΠΈΠ½ΡΠ΅Ρ. ΠΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΡΠΈΠ½ΡΠ΅ΡΠ°, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠΊΡΠ°Π½Π°, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ ΠΈ ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠ°Ρ , Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΡΡΡ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠ²ΠΎΠ΄Π°. ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΊΠ°ΡΠ°Π½Π΄Π°Ρ (Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π»ΠΈΠ½ΠΈΠΉ), ΠΊΠΈΡΡΡ (Π΄Π»Ρ Π·Π°Π»ΠΈΠ²ΠΊΠΈ) ΠΈ ΡΡΠΈΡΡ (Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ°).
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠΊΡΠ°Π½Π°, ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΡΠΈΠ½ΡΠ΅ΡΠ° Π½Π΅ ΡΠ²ΡΠ·Π°Π½Ρ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠΊΠ½Π° Win32 API ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Ρ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ GetDC. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ·Π°Π½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΉ: CreateDC ΠΈΠ»ΠΈ PrintDlgEx.
ΠΡΠ»ΠΈ Π²Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ CreateDC, ΡΠΎ ΠΎΠ±ΡΠ·Π°Π½Ρ ΡΠΊΠ°Π·Π°ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΏΡΠΈΠ½ΡΠ΅ΡΠ° ΠΈ ΠΏΠΎΡΡ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΉ: GetPrinter ΠΈΠ»ΠΈ EnumPrinters.
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠ°ΠΌΡΡΠΈ
Π§ΡΠΎΠ±Ρ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠ²ΠΎΠ΄Π° Π² ΠΏΠ°ΠΌΡΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π΄Π»Ρ ΡΠ°ΡΡΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠ²ΠΎΠ΄Π° Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ Π²ΡΠ²ΠΎΠ΄Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠ°ΠΌΡΡΠΈ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠ°ΠΊ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ. ΠΡΠΎ ΠΌΠ°ΡΡΠΈΠ² Π±ΠΈΡΠΎΠ² Π² ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΡΠ°ΡΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΡΠ΅ΡΠ½ΡΠΉ ΡΠΈΡΡΠ½ΠΎΠΊ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ, ΡΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠ°ΠΌΡΡΠΈ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ.
ΠΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠ°ΠΌΡΡΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΠ°ΡΡΡΠΎΠ²ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ CreateCompatibleDC. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠΌΠ΅ΡΡΠ΅Π΅ ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΠ°Ρ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ Ρ ΡΠΎΡΠΌΠ°ΡΠΎΠΌ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ 1x1 ΠΏΠΈΠΊΡΠ΅Π». ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π±ΠΈΡΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΠΈΡΠΈΠ½ΠΎΠΉ ΠΈ Π²ΡΡΠΎΡΠΎΠΉ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π²ΡΠ·ΡΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ SelectOb j ect.
ΠΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ»ΡΡΠ΅Π½ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ CreateCompatibleDC (ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ), ΡΠΎ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° Π½Π΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π° ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ ΡΠΈΡΡΠ½ΠΊΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΠ²Π΅ΡΠΎΠ²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅ΠΉ Π»ΠΈΠ½ΠΈΠΈ, ΠΊΡΠΈΠ²ΠΎΠΉ, ΡΠ΅ΠΊΡΡΠ° ΠΈΠ»ΠΈ ΡΠ΅Π³ΠΈΠΎΠ½Π° Π² Π±ΠΈΡΠΎΠ²ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Ρ ΡΠ°Π½ΡΡΠ΅Π΅ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π½Π° ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΡ ΡΠΈΡΡΠ½ΠΊΠ° ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ BitBlt, ΡΠΊΠ°Π·ΡΠ²Π°Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠ°ΠΌΡΡΠΈ, Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ° β ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΎΠΊΠ½Π° ΠΈΠ»ΠΈ ΡΠΊΡΠ°Π½Π°.
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°
Win32 API ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ, ΡΡΠΎΠ±Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π°Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ CreatelC. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ , Π·Π°Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠ΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ GetCurrentOb j ect ΠΈ GetObject. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ, ΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² Π΄ΡΡΠ³ΠΈΡ ΡΠΈΠΏΠΎΠ², ΠΏΠΎΡΠΎΠΌΡ ΠΊΠ°ΠΊ Win32 API ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΈ Π½Π΅ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΡΡΡΠΊΡΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΠΈΡ ΡΠ°Π±ΠΎΡΡ. ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ DeleteDC Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°.
6.4. ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Windows ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΈΠΏ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ ΡΠ²Π΅ΡΠΎΠ², ΠΌΠ΅ΡΡΠΎ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π²ΡΠ²ΠΎΠ΄Π° ΠΈ Ρ. Π΄.:
β’ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΎΠ½Π° β ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠΎΠ² ΡΠΎΠ½Π° ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΡΠ°ΡΡΡΠΎΠ²ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ ΡΠ²Π΅ΡΠΎΠΌ ΡΠΎΠ½Π° ΠΏΠΎΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π°;
β’ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ β ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠ° ΠΊΠ°ΡΠ°Π½Π΄Π°ΡΠ΅ΠΉ, ΠΊΠΈΡΡΠ΅ΠΉ, ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΡΠ°ΡΡΡΠΎΠ²ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ ΡΠ²Π΅ΡΠΎΠΌ ΡΠΎΠ½Π°;
β’ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ β ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΏΡΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π²ΡΠ²ΠΎΠ΄Π΅ Π² ΠΎΠΊΠ½Π°, Π½Π° ΡΠΊΡΠ°Π½ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ½ΡΠ΅Ρ;
β’ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΠΎΠ² β ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΊΠΈΡΡΠΈ ΠΏΡΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΡΡΠΎΠ²;
β’ ΡΠΆΠ°ΡΠΈΡ β ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠΎΠ² ΡΠ°ΡΡΡΠΎΠ²ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΡΠΈ ΠΈΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠΈ (ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠΈ).
6.5. Π Π°Π±ΠΎΡΠ° ΡΠΎ ΡΡΠΈΡΡΠ°ΠΌΠΈ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²ΠΈΠ΄Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΡΡΠΈΡΡΠ° Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ°ΡΠΈ ΡΠ΅ΠΊΡΡΠ°:
β’ ΡΠ°ΡΡΡΠΎΠ²ΡΠ΅;
β’ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠ΅;
β’ TrueType;
β’ ΠΡΠ΅ΠΏΠ’ΡΡΠ΅.
ΠΡΠ»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π°Π½Π½ΡΠΌΠΈ Π²ΠΈΠ΄Π°ΠΌΠΈ ΡΡΠΈΡΡΠΎΠ² Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΏΠΎΡΠΎΠ±Π΅ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π½Π°ΡΠ΅ΡΡΠ°Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΠΈΡΡΠΎΠ²ΡΡ ΡΠ°ΠΉΠ»Π°Ρ . Π ΡΠ»ΡΡΠ°Π΅ ΡΠ°ΡΡΡΠΎΠ²ΡΡ ΡΡΠΈΡΡΠΎΠ² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Ρ ΡΠ°Π½ΠΈΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ°ΡΡΡΠ° (Π±ΠΈΡΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°). ΠΠ΅ΠΊΡΠΎΡΠ½ΡΠ΅ ΡΡΠΈΡΡΡ Ρ ΡΠ°Π½ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΠΎΠ½ΡΠΎΠ² ΠΎΡΡΠ΅Π·ΠΊΠΎΠ², ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΡΡΠΎΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ». Π¨ΡΠΈΡΡΡ TrueType ΠΈ ΠΡΠ΅ΠΏΠ’ΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π»ΠΈΠ½ΠΈΡΡ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ ΠΈΠ·Π³ΠΈΠ±Π°, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΡΡΠΎΠ΅ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠΈ ΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠΈ ΠΌΠ°ΡΡΡΠ°Π±Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π¨ΡΠΈΡΡΡ ΠΡΠ΅ΠΏΠ’ΡΡΠ΅ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Ρ ΡΡΠΈΡΡΠ°ΠΌ TrueType, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°Ρ .
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΡΠ΅ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ½ΠΊΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π² ΡΠ°ΡΡΡΠΎΠ²ΠΎΠΌ ΡΡΠΈΡΡΠ΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΠ΅ΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΠΎ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π²ΡΠ²ΠΎΠ΄Π°. ΠΠ°ΠΏΡΠΎΡΠΈΠ², Π²Π΅ΠΊΡΠΎΡΠ½ΡΠ΅ ΡΡΠΈΡΡΡ Π½Π΅ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π²ΡΠ²ΠΎΠ΄Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²ΡΠ΅ΠΌΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Ρ ΡΠ°ΡΡΡΠΎΠ²ΡΡ ΠΈΠ»ΠΈ ΡΡΠΈΡΡΠΎΠ² TrueType. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΡΡ ΡΠΊΠΎΡΠΎΡΡΡ Π²ΡΠ²ΠΎΠ΄Π° ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΎΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½Ρ Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Windows ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠΈΡΠΎΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΈΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΡΠ²ΠΎΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³Π° Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΡΠΈΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
6.6. Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ²
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ Ρ ΠΎΡΡ Π±Ρ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΠ΅ΠΎΡΠΈΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΡΠ° Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠ²Π°ΡΡΡΡ. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΡΠΎΡΠΌΠ΅ ΡΡΠ΄ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ². ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΄Π»Ρ ΡΠΎΡΠΌΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠΎΠ±ΡΡΠΈΡ OnPaint (Π»ΠΈΡΡΠΈΠ½Π³ 6.1).
...ΠΠΈΡΡΠΈΠ½Π³ 6.1.
ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ ΡΠΎΡΠΌΡ OnPaint
procedure TfmShapes.FormPaint(Sender: TObject);
var
hCurDC: HDC;
hCurPen, hOldPen: HPEN;
hCurBrush, hOldBrush: HBRUSH;
begin
//ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΎΠ±ΡΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°
hCurDC := GetDC(Handle);
//ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΠ°ΡΠ°Π½Π΄Π°Ρ
hCurPen := CreatePen(PS_SOLID, 2, RGB(255, 64, 0));
//Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π΅Π³ΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠΊΡΠ°Π½Π°
//ΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ ΡΠ°Π½Π΅Π΅ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ
hOldPen := SelectObject(hCurDC, hCurPen);
//ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΠΈΡΡΡ
hCurBrush := CreateSolidBrush(RGB(0, 128, 255));
//Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π΅Π΅ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠΊΡΠ°Π½Π°
//ΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ ΡΠ°Π½Π΅Π΅ Π²ΡΠ±ΡΠ°Π½Π½ΡΡ
hOldBrush := SelectObject(hCurDC, hCurBrush);
//ΡΠΈΡΡΠ΅ΠΌ ΡΠ»Π»ΠΈΠΏΡ
Ellipse(hCurDC, 10, 10, 100, 70);
//ΡΠΈΡΡΠ΅ΠΌ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ
Rectangle(hCurDC, 110, 10, 210, 70);
//ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ Ρ ΠΎΠΊΡΡΠ³Π»Π΅Π½Π½ΡΠΌΠΈ ΡΠ³Π»Π°ΠΌΠΈ
RoundRect(hCurDC, 10, 80, 100, 140, 10, 10);
//ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ Π² Π²ΠΈΠ΄Π΅ Β«Π±ΠΎΡΠΊΠΈΒ»
RoundRect(hCurDC, 110, 80, 210, 140, 10, 100);
//ΡΠΈΡΡΠ΅ΠΌ ΠΏΡΡΠΌΡΡ
MoveToEx(hCurDC, 10, 150, nil);
LineTo(hCurDC, 100, 220);
//ΡΠΈΡΡΠ΅ΠΌ Π΄ΡΠ³Ρ
Arc(hCurDC, 110, 150, 210, 220, 110, 150, 210, 220);
//Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ°Π½Π΅Π΅ Π²ΡΠ±ΡΠ°Π½Π½ΡΡ ΠΊΠΈΡΡΡ
SelectObject(hCurDC, hOldBrush);
//ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΠΊΠΈΡΡΡ
DeleteObject(hCurBrush);
//Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ°Π½Π΅Π΅ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΠΊΠ°ΡΠ°Π½Π΄Π°Ρ
SelectObject(hCurDC, hOldPen);
//ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΊΠ°ΡΠ°Π½Π΄Π°Ρ
DeleteObject(hCurPen);
//ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΠΌ ΠΎΠ±ΡΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°
ReleaseDC(Handle, hCurDC);
end;
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π½Π°ΡΠ°ΡΡ ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π°ΡΠ΅ΠΉ ΡΠΎΡΠΌΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ GetDC:
...hCurDC := GetDC(Handle);
ΠΠ½Π° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠΊΡΠ°Π½Π° Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΈΠ»ΠΈ Π²ΡΠ΅Π³ΠΎ ΡΠΊΡΠ°Π½Π°. Π€ΡΠ½ΠΊΡΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΎΡΠΌΠ°Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°:
...Function GetDC(hWnd: HWND): HDC;
ΠΠ΄Π΅ΡΡ hWnd β Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠΊΠ½Π°, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΡΠ»ΠΈ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π²Π½ΠΎ nil, ΡΠΎ GetDC Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΡΠΊΡΠ°Π½Π°. Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΅Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π²Π΅Π½ nil.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π°ΡΡΠΈΠ±ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π° ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ. ΠΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΠ²Π΅Ρ ΠΊΠ°ΡΠ°Π½Π΄Π°ΡΠ° ΠΈ Π΅Π³ΠΎ ΡΠΎΠ»ΡΠΈΠ½Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π΅Ρ ΠΊΠΈΡΡΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²ΡΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ CreatePen.
...hCurPen := CreatePen(PS_SOLID, 2, RGB(255, 64, 0));
Π€ΠΎΡΠΌΠ°Ρ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ: