Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ Π½Π°Π΄ΠΏΠΈΡΠ΅ΠΉ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π² Π²Π΅ΠΊΡΠΎΡΠ½ΠΎΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅
ΠΠ°Π±ΠΎΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ VB Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠ±ΡΠΈΡΠ΅Π½ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π½Ρ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠΈΡΠ½ΡΡ Π·Π°Π΄Π°Ρ Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π·Π°Π΄Π°Ρ ΡΠ°ΡΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π·Π°ΡΡΡΠ΄Π½Π΅Π½ΠΎ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Win32 API. Π€ΡΠ½ΠΊΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΅ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ Π½Π°Π΄ΠΏΠΈΡΠ΅ΠΉ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π² Π²Π΅ΠΊΡΠΎΡΠ½ΠΎΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π¦Π΅Π»Ρ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ — ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ — Π²Π΅ΠΊΡΠΎΡΠ½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°. ΠΠ±ΡΠ°Ρ Π·Π°Π΄Π°ΡΠ° ΠΌΠΎΠ΄ΡΠ»Ρ — Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ Π½Π°Π΄ΠΏΠΈΡΠ΅ΠΉ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΡΡΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅Π½ΡΡΠ° ΠΌΠ°ΡΡ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠΎΡΠΌΡ Visual Basic. Π Π°Π±ΠΎΡΠ° Ρ Π³ΡΠ°ΡΠΈΠΊΠΎΠΉ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΎΠΏΠΈΡΠ°ΡΡΠ΅ΠΉΡΡ Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ win32 API, ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ gdi32.dll.
Π ΡΠ°ΠΌΠΊΠ°Ρ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ΄ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ:
1. Π Π°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ.
2. Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΡΠΈΠ΅ΠΌΠΎΠ² ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ.
3. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ.
4. ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΎΡΡΠ΅ΡΠ°.
ΠΠ±Π·ΠΎΡ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ
Π£ΡΠ»ΠΎΠ²ΠΈΡΠΌΠΈ ΠΊΡΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΎΠ³ΠΎΠ²ΠΎΡΠ΅Π½Π° ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Visual Basic 6.0, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Win32 API.
Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Visual Basic.
Visual Basic ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. Π ΡΠΎΡΡΠ°Π²Π΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (IDE) ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ·ΡΠΊΠΎΠΌ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. IDE VB ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΠ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ.
Visual Basic Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΄ΠΎ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠΈ, ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ Π½Π°Π±ΠΎΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ°Π·Π½ΠΎΠ³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΡΡ Π·Π°Π΄Π°Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ·ΡΠΊΠ° Π±ΡΠ²Π°Π΅Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΡΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΈΠΌΠ΅Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ΅ win32 API Π΄Π»Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ΠΈΡ Π²ΡΠ·ΠΎΠ²Π° ΠΊ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ°Π±ΠΎΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ VB Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠ±ΡΠΈΡΠ΅Π½ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π½Ρ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠΈΡΠ½ΡΡ Π·Π°Π΄Π°Ρ Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π·Π°Π΄Π°Ρ ΡΠ°ΡΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π·Π°ΡΡΡΠ΄Π½Π΅Π½ΠΎ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Win32 API. Π€ΡΠ½ΠΊΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΅ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ²Π»ΡΡΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Π² ΡΡΠ΅Π΄Π΅ Windows.
ΠΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° Win32 API
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Win32 API (Application Programming Interface) — ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Windows. Win32 API ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π°Π±ΠΎΡΠ° ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π² Π²ΠΈΠ΄Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ (Dynamic Link Libraries — DLL), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
Win32 API ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Visual Basic. ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² API ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²Π½ΠΈΠΊΠ°ΡΡ Π² ΡΠ°Π±ΠΎΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΡΠΈΠ΅ΠΌΠΎΠ² ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½. Π§ΡΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π²ΡΠ΅Ρ Π΅Π³ΠΎ ΡΠΎΡΠ΅ΠΊ. ΠΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π·Π°Π΄Π°ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ³Π»Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½.
ΠΠ»Ρ Π²Π²ΠΎΠ΄Π° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΎΠ±ΡΡΠΈΠ΅ MouseDown ΠΎΠ±ΡΠ΅ΠΊΡΠ° PictureBox, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅Π΅ ΠΏΠΎΠ»Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠΎΡΠ΅Π΄ΡΡΠ° — ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΌΠ΅ΡΡΠ° ΡΠ΅Π»ΡΠΊΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ Π½ΠΎΠΌΠ΅Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ.
ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ°ΡΡΠ΅ΡΠΎΠ². ΠΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠ½ΡΠΉ ΠΎΠ±Π·ΠΎΡ ΡΡΠ΅Π΄ΡΡΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΊΡΡΠΆΠ°ΡΡΠ΅ΠΉ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Visual Basic Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΡΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ.
1. Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈΠ· Π΄Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Array (x, y), ΠΊΠΎΡΠΎΡΡΠΉ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π±ΡΠ΄Π΅Ρ ΡΠ²Π»ΡΡΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ Π²ΡΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π°.
2. Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π²ΡΠ΅Ρ Π²Π΅ΡΡΠΈΠ½ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π° Π² Π΄Π²ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°Ρ , ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π΄Π»Ρ x, ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π΄Π»Ρ y.
3. Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΡΠΈΠΏΠ΅ Π΄Π°Π½Π½ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅.
ΠΠ΅ΡΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ΄ΠΎΠ±Π΅Π½ Π²Π²ΠΈΠ΄Ρ Π½ΠΈΠ·ΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ. ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΠΈ Π½Π°Π³Π»ΡΠ΄Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ.
ΠΡΠΎΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΠΌΠ΅Π΅Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΠΈΠΏ, ΠΏΡΠΈΠ½ΡΡΡΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² Win32 API:
Public type POINTAPI x as Long y as Long
End type
ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π² ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ Π΅Ρ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅ Π²Π΅ΡΡΠΈΠ½ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π°.
ΠΠΎΡΠ»Π΅ Π²Π²ΠΎΠ΄Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΡΡΠ΅Π½Ρ.
ΠΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΌΡΡΠΈ ΠΏΠΎ ΠΏΠΎΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°Π±Π»ΡΠ΄Π°Π΅Ρ ΡΠ°Π½ΡΠΎΠΌΠ½ΡΡ Π²Π΅ΡΡΠΈΠ½Ρ Π² ΡΠΎΡΠΊΠ΅ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΌΡΡΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π½ΡΠΎΠΌΠ½ΠΎΠ΅ ΡΠ΅Π±ΡΠΎ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π°. ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Ρ ΠΎΡΡ Π±Ρ ΡΡΠ΅Ρ ΡΠΎΡΠ΅ΠΊ, ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΡΡΠΈΡ ΠΎΠ²Π°Π½Π½Π°Ρ Π»ΠΈΠ½ΠΈΡ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠ°Ρ ΡΠ΅Π±ΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΡΠ΅Π±ΡΠΎ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π°, Π² ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ Π²Π²ΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½.
ΠΠ²ΠΎΠ΄ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π° Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ ΡΠ΅Π»ΡΠΊΠ° Π½Π° ΠΏΠΎΠ»Π΅, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΠ½Π° ΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ.
ΠΠ°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ΅Π½ΡΡΠ° ΠΌΠ°ΡΡ
Π ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌΠΈ ΡΠ°Π±ΠΎΡΡ, Π»ΠΈΠ½ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΡΠ΅ΡΡΡ Π½Π°Π΄ΠΏΠΈΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π° ΡΠ΅ΡΠ΅Π· ΡΠ΅Π½ΡΡ ΠΌΠ°ΡΡ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π°.
ΠΠ»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅Π½ΡΡΠ° ΠΌΠ°ΡΡ Π²ΡΠΏΡΠΊΠ»ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π²ΡΠ΅Ρ Π΅Π³ΠΎ Π²Π΅ΡΡΠΈΠ½.
Π’ΠΎΠ³Π΄Π° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠ΅Π½ΡΡΠ° ΠΌΠ°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΊΠ°ΠΊ ΡΡΠΌΠΌΠ° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π²Π΅ΡΡΠΈΠ½ ΠΎΡΠ½Π΅ΡΠ΅Π½Π½Π°Ρ ΠΊ ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ, Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ ΡΡΠ΅Π΄Π½Π΅Π΅ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π²Π΅ΡΡΠΈΠ½:
ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π’Π΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π²Π²ΠΎΠ΄ΠΈΡΡΡΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅. Π¨ΡΠΈΡΡ ΡΠ΅ΠΊΡΡΠ° Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ «font» ΠΈΠ· ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³Π° Π²ΡΠ±ΠΎΡΠ° ΡΡΠΈΡΡΠ°. ΠΠΈΠ°Π»ΠΎΠ³ Π²ΡΠ±ΠΎΡΠ° ΡΡΠΈΡΡΠ° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Common Dialog, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠΈΡΠ»ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π΄Π»Ρ Windows XP.
ΠΠΈΠ½ΠΈΡ ΠΈ ΡΠ΅ΠΊΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΏΠΎΠ΄ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΠ³Π»ΠΎΠΌ. ΠΠ²Π΅ΡΡΠΈ ΡΠ³ΠΎΠ» ΠΏΠΎΠ²ΠΎΡΠΎΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΡΠΊΠ°Π·Π°Π² Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² Π³ΡΠ°Π΄ΡΡΠ°Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΠΏΠΎΠ»Π΅, Π»ΠΈΠ±ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° VScroll.
Π Π°Π±ΠΎΡΠ΅Π΅ ΠΏΠΎΠ»Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ PictureBox, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠ»Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠΊΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΠ»ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ AutoRedraw Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ True, ΡΡΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, Π½ΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ «ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΌ». ΠΠΎΡΠ»Π΅ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π° ΡΠ°ΠΊΠΎΠΌ PictureBox Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Refresh Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ½ΠΊΠ°.
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ΅Π½Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΠΏΠΎΠ².
Π‘Π½Π°ΡΠ°Π»Π° ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π°, Π·Π°ΡΠ΅ΠΌ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π½ΡΡΠ° ΠΌΠ°ΡΡ, ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΈ ΠΈ Π²ΡΠ²ΠΎΠ΄ ΡΠ΅ΠΊΡΡΠ°.
Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π°
ΠΠ»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΡΠ΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π²Π²Π΅Π΄Π΅Π½Ρ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ, ΠΏΡΠΎΠ±Π΅Π³Π°Π΅ΠΌ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠΎΡΠΊΠ°ΠΌ Π² ΡΠΈΠΊΠ»Π΅. Π’ΠΎΡΠΊΠ° (Π²Π΅ΡΡΠΈΠ½Π°) ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ. Π‘ΡΠΎΡΠΎΠ½Π° ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π° ΡΠΈΡΡΠ΅ΡΡΡ ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΈ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ. ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΎΡΠΊΠ° ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΡΡ Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π½ΡΡΠ° ΠΌΠ°ΡΡ ΠΈ Π»ΠΈΠ½ΠΈΠΈ ΠΏΡΠΎΡ ΠΎΠ΄ΡΡΠ΅ΠΉ ΡΠ΅ΡΠ΅Π· Π½Π΅Π³ΠΎ
Π¦Π΅Π½ΡΡ ΠΌΠ°ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π°ΠΌ Π² Π³Π»Π°Π²Π΅ 3.2. ΠΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΠ΅Π½ΡΡ ΠΌΠ°ΡΡ Π² Π²ΠΈΠ΄Π΅ Π·Π°ΠΊΡΠ°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΡΡΠ³Π°, ΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ°. ΠΠΈΠ½ΠΈΡ ΠΆΠ΅, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅Π½ΡΡ ΠΌΠ°ΡΡ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΠ³Π»Π° ΠΏΠΎΠ²ΠΎΡΠΎΡΠ°.
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ°.
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° Π½ΡΠΆΠ½ΡΠΌ Π΄Π»Ρ Π½Π°Ρ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. Π‘Π½Π°ΡΠ°Π»Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΡΠ΅ΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΡΠ΅ΠΊΡΡ, Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ PictureBox — ΡΠ°Π±ΠΎΡΠ΅Π΅ ΠΏΠΎΠ»Π΅. ΠΠ°ΡΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ΅ΠΊΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ API ΡΡΠ½ΠΊΡΠΈΡ TextOut.
ΠΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΡΡΠΊΡΡΡΡ LOGFONT.
'ΡΡΡΡΠΊΡΡΡΠ° ΡΡΠΈΡΡΠ° win32 API
Public Type LOGFONT 'Π²ΡΡΠΎΡΠ° ΡΡΠΈΡΡΠ°
ifHeight As Long
'ΡΠΈΡΠΈΠ½Π°
ifWidth As Long
'ΠΏΠΎΠ²ΠΎΡΠΎΡ ΡΡΠΈΡΡΠ°
ifEscapement As Long
ifOrientation As Long
'ΡΠΎΠ»ΡΠΈΠ½Π° ΡΡΠΈΡΡΠ°
ifWeight As Long
'Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΠΈΡΡΠ°
ifItalic As Byte
ifUnderline As Byte
ifStrikeOut As Byte
ifCharSet As Byte
ifOutPrecision As Byte
ifClipPrecision As Byte
ifQuality As Byte
IsngPitchAndFamily As Byte
'ΡΡΠΈΡΡ
ifFaseName (LF_FACECIZE — 1) As Byte
End Type
ΠΡΠ° ΡΡΡΡΠΊΡΡΡΠ° ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ, ΡΠΎ ΠΊΠ°ΠΊ ΡΠ΅ΠΊΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅. ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ API ΡΡΠ½ΠΊΡΠΈΡ CreateFontIndirect. Π€ΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ — ΡΡΠΈΡΡ.
Π‘Π΅ΠΉΡΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΡΠΈΡΡ ΠΊ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ.
ΠΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ SelectObject. Π€ΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ — ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ. ΠΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π΅ΡΡΡ ΡΡΠΈΡΡ ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ. Π‘ΠΎΡ ΡΠ°Π½ΠΈΠΌ ΡΡΠΎΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ, Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ΅ΠΊΡΡ.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ Π½Π°Π΄ΠΏΠΈΡΡ ΡΠΈΡΡΠ½ΠΎΠΊ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄.
ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ API ΡΡΠ½ΠΊΡΠΈΠΉ.
'Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π΄Π»Ρ ΡΡΠΈΡΡΠ°
Public Const LF_FACECIZE = 32
Public Const LOGPIXELSY = 90
'ΡΠΈΠΏ ΡΠΎΡΠΊΠ°,
'ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Win32 API ΡΠΈΠΏ
Public Type pointapi x As Long y As Long
End Type
'ΡΡΡΡΠΊΡΡΡΠ° ΡΡΠΈΡΡΠ° win32 API
Public Type LOGFONT
ifHeight As Long
ifWidth As Long
ifEscapement As Long
ifOrientation As Long
ifWeight As Long
ifItalic As Byte
ifUnderline As Byte
ifStrikeOut As Byte
ifCharSet As Byte
ifOutPrecision As Byte
ifClipPrecision As Byte
ifQuality As Byte
IsngPitchAndFamily As Byte
ifFaseName (LF_FACECIZE — 1) As Byte
End Type
'ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄Π»Ρ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°
'Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΡΠ°Π½Π΅Π΅
Public Declare Function SelectObject Lib «gdi32» (ByVal hdc As Long, ByVal hObject As Long) As Long
'ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠΎ Ρ Π΅Π½Π΄Π»Ρ
Public Declare Function DeleteObject Lib «gdi32» (ByVal hObject As Long) As Long
'ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΡΠΈΡΡΠ° ΠΈΠ· ΡΡΡΡΠΊΡΡΡΠ° LOGFONT
Public Declare Function CreateFontIndirect Lib «gdi32» Alias «CreateFontIndirectA» (lpLogFont As LOGFONT) As Long
'Π²ΡΠ²ΠΎΠ΄ ΡΠ΅ΠΊΡΡΠ° Π² ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ
Public Declare Function TextOut Lib «gdi32» Alias «TextOutA» (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
'ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ
Public Declare Function GetDeviceCaps Lib «gdi32» (ByVal hdc As Long, ByVal intIndex As Long) As Long
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π½ΡΡΠ° ΠΌΠ°ΡΡ.
'ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π½ΡΡΠ° ΠΌΠ°ΡΡ
Private Function getCM () As pointapi 'ΡΡΠ΅Π΄Π½Π΅Π΅ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 'ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π° Dim arr () As pointapi arr = dots Dim sX As Long, sY As Long Dim i As Integer 'ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠΎΡΠΊΠ°ΠΌ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π° For i = 1 To UBound (arr) 'ΡΡΠΌΠΌΠΈΡΡΠ΅ΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ sX = sX + arr (i).x sY = sY + arr (i).y Next 'Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΡΡΠ΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ getCM. x = sX / UBound (arr) getCM. y = sY / UBound (arr)
End Function
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
Sub paint_field () pic. Cls 'ΠΎΡΠΈΡΠ°Π΅ΠΌ 'ΡΠ°Π±ΠΎΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠΎΡΠ΅ΠΊ Dim dot As pointapi, nextDot As pointapi 'Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΡΡΠΎΠΊΠ° Dim tmpS As String 'Π΄Π»ΠΈΠ½Π° ΡΡΠΎΡΠΎΠ½ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π° Dim length As Single 'Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄Π»Ρ ΡΠΎΡΠΊΠΈ Dim tmpDot As pointapi 'ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠΎΡΠΊΠ°ΠΌ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ For i = 1 To UBound (dots) 'ΡΠ²Π΅Ρ ΡΠΈΠ½ΠΈΠΉ col = vbYellow 'Π±Π΅ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΡΡ ΡΠΎΡΠΊΡ dot = dots (i) 'ΠΎΡΠΌΠ΅ΡΠ°Π΅ΠΌ Π½Π° ΠΏΠΎΠ»Π΅ Π·Π΅Π»Π΅Π½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ pic. Circle (dot.x, dot. y), 10, vbGreen j = i + 1 'ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΠΎΡΠΊΠ° If j > UBound (dots) Then j = 1 'Π΅ΡΠ»ΠΈ Π²Π΄ΡΡΠ³ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΠΎΡΠΊΠ° ΠΎΠΊΠ°Π·Π°Π»Π°ΡΡ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ _ Π·Π½Π°ΡΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π½Π° ΠΏΠ΅ΡΠ²ΡΡ col = vbGreen End If nextDot = dots (j) 'ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π΄Π»Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΈ 'ΡΠΈΡΡΠ΅ΠΌ Π»ΠΈΠ½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΠ·ΠΈΡΡΡΡΡΡ ΡΡΠΎΡΠΎΠ½Ρ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π° pic. Line (nextDot.x, nextDot. y)-(dot.x, dot. y), col Next 'Π΅ΡΠ»ΠΈ ΠΈΠΌΠ΅ΡΡΡΡ ΡΠΎΡΠΊΠΈ ΡΠΎ If UBound (dots) > 1 Then 'ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΠ΅Π½ΡΡ ΠΌΠ°ΡΡ, Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ cm = getCM () 'ΡΠΈΡΡΠ΅ΠΌ ΡΡΠΎΡ ΡΠ΅Π½ΡΡ ΠΌΠ°ΡΡ ΠΊΠ°ΠΊ ΠΊΡΠ°ΡΠ½ΡΡ Π·Π°ΠΊΡΠ°ΡΠ΅Π½Π½ΡΡ ΡΠΎΡΠΊΡ pic. FillStyle = 0 pic. FillColor = vbRed pic. Circle (cm.x, cm. y), 4, vbRed pic. FillStyle = 1 'ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΠΌ Π»ΠΈΠ½ΠΈΡ Dim y2 As Single, x2 As Single y2 = (pic.ScaleWidth) * Sin (angle) x2 = pic. ScaleWidth * Cos (angle) pic. Line (cm.x, cm. y)-(cm.x + x2, cm. y + y2) pic. Line (cm.x, cm. y)-(cm.x — x2, cm. y — y2) 'ΡΠΈΡΠ°Π΅ΠΌ ΡΡΡΠΎΠΊΡ ΠΊΠΎΡΠΎΡΡΡ Π½Π°Π΄ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ Dim s As String s = txtText. Text 'ΡΡΠΈΡΡ Dim apiFont As LOGFONT 'Π±ΠΈΡΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² Dim bytBuf () As Byte 'ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ Dim intI As Integer 'ΠΈΠΌΡ ΡΡΠΈΡΡΠ° ΠΈΠ· ΠΊΠΎΠΌΠΌΠΎΠ½Π΄ΠΈΠ°Π»ΠΎΠ³Π° Dim strFontName As String strFontName = pic.Font.Name 'ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠΌ ΠΈΠΌΡ ΡΡΠΈΡΡΠ° Π² ΠΊΠΎΡΠ΅ΡΠ½ΡΠΉ Π²ΠΈΠ΄ bytBuf = StrConv (strFontName & Chr$(0), vbFromUnicode) 'ΠΏΠΎΠ±Π°ΠΉΡΠΎΠ²ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ API ΡΡΠ½ΠΊΡΠΈΠΈ For intI = 0 To UBound (bytBuf) apiFont. ifFaseName (intI) = bytBuf (intI) Next intI 'Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠΈΡΡΠ° apiFont. ifHeight=pic.Font.Size*GetDeviceCaps (pic.hdc, LOGPIXELSY) 72
apiFont.ifItalic=Switch (pic.Font.Italic=True, 1, pic.Font.Italic = False, 0 apiFont. ifUnderline = Switch (pic.Font.Underline = True, 1, pic.Font.Underline = False, 0)
apiFont.ifStrikeOut = Switch (pic.Font.Strikethrough = True, 1, pic.Font.Strikethrough = False, 0) apiFont. ifWeight = pic.Font.Weight 'ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΏΠΎΠ²ΠΎΡΠΎΡ apiFont. ifEscapement = -(angle) * 1800 / pi apiFont. ifOrientation = apiFont. ifEscapement Dim fontObject As Long, oldFont As Long Dim ingRes As Long 'ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΡΠΈΡΡΠ° fontObject = CreateFontIndirect (apiFont) 'Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΡΠΈΡΡ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (ΠΏΠΈΠΊΡΡΠ΅ΡΠ±ΠΎΠΊΡ) _ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠ»ΠΊΡ, Π° ΡΡΠ°ΡΡΠΉ ΡΡΠΈΡΡ oldFont = SelectObject (pic.hdc, fontObject) Dim oldColor As Long 'ΡΠΎΡ ΡΠ°Π½Π΅ΡΠ΅ΠΌ ΡΡΠ°ΡΡΠΉ ΡΠ²Π΅Ρ oldColor = pic. ForeColor 'ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ pic. ForeColor = picFontColor 'ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌ Π²ΡΠ²ΠΎΠ΄ ingRes = TextOut (pic.hdc, cm. x, cm. y, s, Len (s)) 'Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ pic. ForeColor = oldColor fontObject = SelectObject (pic.hdc, oldFont) 'ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΡΠΈΡΡ DeleteObject fontObject End If pic. Refresh ' ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ, Ρ.ΠΊ. AutoRedraw=true
End Sub
Π Π΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π΄Π°Π½Π½ΠΎΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° — ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²Π΅ΠΊΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π²ΠΎΠ΄ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΡΡΠΈ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΡΠ΅Π½ΡΡ ΡΡΠΆΠ΅ΡΡΠΈ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½Π°, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π½Π°Π΄ΠΏΠΈΡΡ, ΠΏΠΎ Π»ΠΈΠ½ΠΈΠΈ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π½ΡΡΠ°.
Π ΡΠ°ΠΌΠΊΠ°Ρ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ, Π±ΡΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ:
Β· ΠΎΠ±Π·ΠΎΡ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ
Β· ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΡΠΈΠ΅ΠΌΠΎΠ² ΡΠ΅ΡΠ΅Π½ΠΈΡ
Β· ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ
Β· ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
Β· ΠΏΠΎΠ΄Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΡΠΎΠ³Π° ΠΠ°ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΠ»ΡΠΆΠΈΡΡ Π±Π°Π·ΠΎΠΉ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.