ΠΡΠ°ΡΠΈΠΊΠ° Π² Windows
ΠΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΎΠΊΠ½Π° ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ CreateWindowEx () ΡΠΎ ΡΡΠΈΠ»Π΅ΠΌ WS_CHILD ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ. ΠΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡΠ·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ, ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ°ΠΌΠΊΡ ΠΈ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ, Π½ΠΎ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΌΠ΅Π½Ρ. ΠΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΎΠΊΠ½Π° Π²ΡΠ΅Π³Π΄Π° Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΡΠ°ΡΠΈΠΊΠ° Π² Windows (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
1. Π¦Π΅Π»Ρ ΡΠ°Π±ΠΎΡΡ
ΠΠ·ΡΡΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊΡ Π² Windows. ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° 32-Π±ΠΈΡΠ½ΠΎΠΌ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ API-ΡΡΠ½ΠΊΡΠΈΠΈ.
2. Π’Π΅ΠΎΡΠΈΡ
Π³ΡΠ°ΡΠΈΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ windows
Π ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Windows ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΡ. ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΡΡΠ΅ΠΌΡ — ΠΎΠΊΠ½ΠΎ, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΌ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΎΠΊΠ½Π°. ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ°Π· ΠΎΠΊΠ½Π° Π½Π° ΡΠΊΡΠ°Π½Π΅ Π΄ΠΈΡΠΏΠ»Π΅Ρ — ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ.
ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΈΠΏΠ° Π»ΡΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Windows ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅ΡΡΡ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Π΅ΠΌ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠΌ (handle). ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ — ΡΡΠΎ ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΡΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· Π΅Π³ΠΎ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ.
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (API — Application Programming Interface) ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ 32-Π±ΠΈΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ (Win32 API), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ), ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Microsoft Windows. Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ . ΠΠ»Π°Π²Π½ΡΠΉ ΠΈΠ· Π½ΠΈΡ — ΡΠ°ΠΉΠ» windows. h, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ.
Π Win32 Π΅Π΄ΠΈΠ½ΠΈΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠΎΠΊ — Ρ ΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ° (Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°). ΠΠΎΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡΡ. ΠΡΠΎΡΠ΅ΡΡ — ΡΡΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (Π½ΠΎ Π½Π΅ Ρ ΠΎΠ΄ Π΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ). ΠΠ½ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, ΠΊΠΎΠ΄ ΠΈ Π΄Π°Π½Π½ΡΠ΅, ΡΠ°ΠΉΠ»Ρ, ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π΅Ρ, ΠΏΠΎ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΎΠ΄ΠΈΠ½ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ².
ΠΡΠ±ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Windows ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π΄ΠΈΡΠΏΠ»Π΅Ρ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ Ρ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. Π Π°Π·Π»ΠΈΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΈΠΏΡ ΠΎΠΊΠΎΠ½:
ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΠΈΠ΅ (overlapped window);
Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΠ΅ (pop-up window);
Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ (Child window);
ΡΠ»ΠΎΠΈΡΡΡΠ΅ (1ayered window) — ΠΎΡΠΎΠ±ΡΠ΅ ΠΎΠΊΠ½Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ»ΡΡΡΠΈΡΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ ΡΡΡΠ΅ΠΊΡ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΡ.
ΠΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΠΈΠ΅ ΠΎΠΊΠ½Π° ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ CreateWindowEx () ΡΠΎ ΡΡΠΈΠ»Π΅ΠΌ WS_OVERLAPPEDWINDOW. ΠΡΠΎΡ ΡΡΠΈΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ, ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠ½ΠΎΠΏΠΊΠΈ Π·Π°ΠΊΡΡΡΠΈΡ ΠΎΠΊΠ½Π° ΠΈ «ΡΠΎΠ»ΡΡΠΎΠΉ» ΡΠ°ΠΌΠΊΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΎΠΊΠ½Π°. ΠΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ Π³Π»Π°Π²Π½ΡΡ ΠΎΠΊΠΎΠ½ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΌΠ΅Π½Ρ.
ΠΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΠ΅ ΠΎΠΊΠ½Π° ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ CreateWindowEx () ΡΠΎ ΡΡΠΈΠ»Π΅ΠΌ WS_POPUP ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΎΠΊΠΎΠ½ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ², ΠΎΠΊΠΎΠ½ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΎΠΊΠΎΠ½ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π²Π½Π΅ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈΠΌΠ΅Π»ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΡΠ°ΠΌΠΊΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΡΡΠΈΠ»Π΅ΠΉ WS_POPUPWINDOW | WS_CAPTION .
ΠΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΎΠΊΠ½Π° ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ CreateWindowEx () ΡΠΎ ΡΡΠΈΠ»Π΅ΠΌ WS_CHILD ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ. ΠΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡΠ·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ, ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ°ΠΌΠΊΡ ΠΈ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ, Π½ΠΎ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΌΠ΅Π½Ρ. ΠΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΎΠΊΠ½Π° Π²ΡΠ΅Π³Π΄Π° Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, Ρ. Π΅. ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π²ΡΠ΅Π³Π΄Π° ΠΎΡΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΠΎΡ Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ³Π»Π°ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. Π ΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΠΈΠΌ, Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΠΌ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π΄ΡΡΠ³ΠΈΠΌ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ.
3 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ API-ΡΡΠ½ΠΊΡΠΈΠΉ
DefWindowProc
ΠΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΎΠΊΠ½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ.
LRESULT WINAPI DefWindowProc (
__in HWND HWND, // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠΊΠ½Π°, ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
__in UINT Msg, // Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
__in WPARAM WPARAM, // ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ. Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Msg.
__in LPARAM LPARAM // ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ. Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Msg.
);
InvalidateRect
ΠΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ ΠΊ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΠΎΠ½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ°ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½Ρ.
BOOL InvalidateRect (
__in HWND HWND, // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠΊΠ½Π°, ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
__in CONST RECT * LPRECT, // Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° RECT ΡΡΡΡΠΊΡΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΊ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΡΠ»ΠΈ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ°Π²Π΅Π½ NULL, Π²ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
__in BOOL bErase // Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, Π±ΡΠ΄Π΅Ρ Π»ΠΈ ΡΠΎΠ½ Π²Π½ΡΡΡΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ΄Π°Π»Π΅Π½ ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠ»ΠΈ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ TRUE, ΡΠΎΠ½ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΏΡΠΈ BeginPaint. ΠΡΠ»ΠΈ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ FALSE, ΡΠΎΠ½ ΠΎΡΡΠ°Π΅ΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠΌ.
);
CreateWindowEx
Π‘ΠΎΠ·Π΄Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΠ΅Π΅, Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅Π΅ ΠΈΠ»ΠΈ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π΅ ΠΎΠΊΠ½ΠΎ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΌ ΡΡΠΈΠ»Π΅ΠΌ ΠΎΠΊΠ½Π°.
HWND WINAPI CreateWindowEx (
__in DWORD dwExStyle, // Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ ΡΡΠΈΠ»Ρ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.
__in_opt LPCTSTR lpClassName, // ΠΠΌΡ ΠΊΠ»Π°ΡΡΠ° ΠΎΠΊΠ½Π°.
__in_opt LPCTSTR lpWindowName, // ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠΊΠ½Π°.
__in DWORD dwStyle, // Π‘ΡΠΈΠ»Ρ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.
__in Int Ρ , // ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°.
__in Int Ρ, // ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°.
__in Int nWidth, // Π¨ΠΈΡΠΈΠ½Π° ΠΎΠΊΠ½Π°.
__in Int nHeight, // ΠΡΡΠΎΡΠ° ΠΎΠΊΠ½Π°.
__in_opt HWND hWndParent, // ΠΠΊΠ½ΠΎ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.
__in_opt HMENU HMENU, // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΌΠ΅Π½Ρ.
__in_opt HINSTANCE HINSTANCE, // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ²ΡΠ·Π°Π½ Ρ ΠΎΠΊΠ½ΠΎΠΌ.
__in_opt LPVOID lpParam // Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ΠΎ ΡΠ΅ΡΠ΅Π· ΡΡΡΡΠΊΡΡΡΡ (lpCreateParams ΡΠ»Π΅Π½Π°), Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ LPARAM ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_CREATE. ΠΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ Π² ΠΎΠΊΠ½ΠΎ, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ΅ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Π΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠΌ.
);
DispatchMessage
ΠΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΠΎΠΊΠΎΠ½Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ.
LRESULT WINAPI DispatchMessage (
__in ΡΠΎΠΏΠ·Π¬ MSG * LPMSG // Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡΡΠΊΡΡΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
);
ExitProcess
ΠΠ°Π²Π΅ΡΡΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈ Π²ΡΠ΅ Π΅Π³ΠΎ Π½ΠΈΡΠΈ.
VOID WINAPI ExitProcess (
__in UINT uExitCode // ΠΠΎΠ΄ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΠΏΡΠΎΡΠ΅ΡΡΠ°.
);
GetMessage
ΠΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°.
BOOL WINAPI GetMessage (
__out LPMSG LPMSG, // Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° MSG ΡΡΡΡΠΊΡΡΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΡΠΎΠΊΠ°.
__in_opt HWND HWND, // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠΊΠ½Π°, ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ. ΠΠΊΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΡ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΠΏΠΎΡΠΎΠΊΡ.
__in UINT wMsgFilterMin, // Π‘Π°ΠΌΡΠΉ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ.
__in UINT wMsgFilterMax // Π‘Π°ΠΌΡΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ.
);
GetModuleHandle
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ.
HMODULE WINAPI GetModuleHandle (
__in_opt LPCTSTR lpModuleName // ΠΠΌΡ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ (Π»ΠΈΠ±ΠΎ .DLL, Π»ΠΈΠ±ΠΎ .EXE-ΡΠ°ΠΉΠ»).
);
LoadCursor
ΠΠ°Π³ΡΡΠΆΠ°Π΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΊΡΡΡΠΎΡ.
LoadCursor HCURSOR WINAPI (
__in_opt HINSTANCE HINSTANCE, // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΡΡΡΠΎΡ ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½.
__in LPCTSTR lpCursorName // ΠΠΌΡ ΠΊΡΡΡΠΎΡΠ° Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ.
);
LoadIcon
ΠΠ°Π³ΡΡΠΆΠ°Π΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΈΠΊΠΎΠ½ΠΊΡ.
HICON WINAPI LoadIcon (
__in_opt HINSTANCE hInstance, // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠΊΠΎΠ½ΠΊΡ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ NULL, Π΅ΡΠ»ΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ ΠΈΠΊΠΎΠ½ΠΊΠ°.
__in LPCTSTR lpIconName // ΠΠΌΡ ΠΈΠΊΠΎΠ½ΠΊΠΈ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ.
);
PostQuitMessage
Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΡΡΠΎ ΠΏΠΎΡΠΎΠΊ ΠΏΡΠΎΡΠΈΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅.
VOID WINAPI PostQuitMessage (
__in int nExitCode // ΠΠΎΠ΄ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
);
RegisterClass
Π Π΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ ΠΊΠ»Π°ΡΡ ΠΎΠΊΠ½Π° Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ CreateWindow ΠΈΠ»ΠΈ CreateWindowEx ΡΡΠ½ΠΊΡΠΈΠΈ.
ATOM WINAPI RegisterClass (
__in ΡΠΎΠΏΠ·Π¬ WNDCLASS * lpWndClass // Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° WNDCLASS ΡΡΡΡΠΊΡΡΡΡ.
);
ShowWindow
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π° ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.
BOOL WINAPI ShowWindow (
__in HWND HWND, // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠΊΠ½Π°.
__in Int nCmdShow // Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΎΠΊΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ.
);
TranslateMessage
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ virtual-key ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² character ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
BOOL WINAPI TranslateMessage (
__in ΡΠΎΠΏΠ·Π¬ MSG * LPMSG // Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° MSG ΡΡΡΡΠΊΡΡΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
);
UpdateWindow
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.
BOOL UpdateWindow (
__in HWND hWnd // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠΊΠ½Π°.
);
BeginPaint
ΠΠΎΡΠΎΠ²ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
HDC BeginPaint (
__in HWND hwnd,
__out LPPAINTSTRUCT lpPaint
);
EndPaint
ΠΠ½Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΊΠΎΠ½Π΅Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° BeginPaint.
BOOL EndPaint (
__in HWND hWnd, // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠΊΠ½Π°.
__in const PAINTSTRUCT *lpPaint // Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° PAINTSTRUCT ΡΡΡΡΠΊΡΡΡΡ.
);
CreateSolidBrush
Π‘ΠΎΠ·Π΄Π°Π΅Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ ΠΊΠΈΡΡΡ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ.
HBRUSH CreateSolidBrush (
__in COLORREF crColor // Π¦Π²Π΅Ρ ΠΊΠΈΡΡΠΈ.
);
GetSystemMetrics
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ.
int WINAPI GetSystemMetrics (
__in int nIndex // Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ.
);
GetDC
ΠΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° (DC) Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΈΠ»ΠΈ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΡΠΊΡΠ°Π½Π°.
HDC GetDC (
__in HWND hWnd // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠΊΠ½Π°.
);
CreateCompatibleDC
Π‘ΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (DC), ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ.
HDC CreateCompatibleDC (
__in HDC hdc // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
);
SelectObject
ΠΡΠ±ΠΈΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Π² Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (DC).
HGDIOBJ SelectObject (
__in HDC hdc, // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
__in HGDIOBJ hgdiobj // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠ°Π½.
);
CreateCompatibleBitmap
Π‘ΠΎΠ·Π΄Π°Π΅Ρ ΡΠ°ΡΡΡΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠ΅ Ρ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
HBITMAP CreateCompatibleBitmap (
__in HDC hdc, // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
__in int nWidth, // Π Π°ΡΡΡΠΎΠ²Π°Ρ ΡΠΈΡΠΈΠ½Π° Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ .
__in int nHeight // Π Π°ΡΡΡΠΎΠ²Π°Ρ Π²ΡΡΠΎΡΠ° Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ .
);
PatBlt
Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΈΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ±ΡΠ°Π½Ρ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
BOOL PatBlt (
__in HDC hdc, // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
__in int nXLeft, // Π₯-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°, Π² Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ°Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ, Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ³Π»Π° ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½.
__in int nYLeft, // Y-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°.
__in int nWidth, // Π¨ΠΈΡΠΈΠ½Π° ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°.
__in int nHeight, // ΠΡΡΠΎΡΠ° ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°.
__in DWORD dwRop // ΠΠΎΠ΄ ΡΠ°ΡΡΡΠΎΠ²ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
);
BitBlt
Π€ΡΠ½ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Ρ Π±Π»ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½ΡΡ ΠΎ ΡΠ²Π΅ΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ DC-ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
BOOL BitBlt (
__in HDC hdcDest, // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
__in int nXDest, // Π₯-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°, Π² Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ°Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ, Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ³Π»Π° ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½.
__in int nYDest, // Y-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°.
__in int nWidth, // Π¨ΠΈΡΠΈΠ½Π° ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°.
__in int nHeight, // ΠΡΡΠΎΡΠ° ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°.
__in HDC hdcSrc, // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°.
__in int nXSrc, // Π₯-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°, Π² Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ°Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ, Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ³Π»Π° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°.
__in int nYSrc, // Y-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°.
__in DWORD dwRop // ΠΠΎΠ΄ ΡΠ°ΡΡΡΠΎΠ²ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
);
ReleaseDC
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (DC), Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ.
int ReleaseDC (
HWND hWnd, // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠΊΠ½Π°, ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½.
HDC hDC // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ, ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½.
);
DeleteObject
Π£Π΄Π°Π»ΡΠ΅Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠ΅ΡΡΡ, ΠΊΠΈΡΡΠΈ, ΡΡΠΈΡΡΡ, ΡΠ°ΡΡΡΠΎΠ²ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠ΅Π³ΠΈΠΎΠ½Ρ ΠΈΠ»ΠΈ ΠΏΠ°Π»ΠΈΡΡΡ, ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Ρ Π²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ.
BOOL DeleteObject (
__in HGDIOBJ hObject // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ°, ΠΊΠΈΡΡΠΈ, ΡΡΠΈΡΡΠ°, ΡΠ°ΡΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠ΅Π³ΠΈΠΎΠ½Π° ΠΈΠ»ΠΈ ΠΏΠ°Π»ΠΈΡΡΡ.
);
DeleteDC
Π€ΡΠ½ΠΊΡΠΈΡ ΡΠ΄Π°Π»ΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (DC).
BOOL DeleteDC (
__in HDC hdc // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
);
Rectangle
Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΡΠ΅Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ.
BOOL Rectangle (
__in HDC hdc, // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
__in int nLeftRect, // Π₯-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°, Π² Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ°Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ, Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ³Π»Π° ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°.
__in int nTopRect, // Y-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°.
__in int nRightRect, // Π₯-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°, Π² Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ°Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ, ΠΏΡΠ°Π²ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΠ³Π»Π° ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°.
__in int nBottomRect // Y-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°.
);
Ellipse
Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΡΠ΅Ρ ΡΠ»Π»ΠΈΠΏΡ.
BOOL Ellipse (
__in HDC hdc, // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
__in int nLeftRect, // Π₯-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°, Π² Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ°Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ, Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ³Π»Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°.
__in int nTopRect, // Y-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°.
__in int nRightRect, // Π₯-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°, Π² Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ°Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ, ΠΏΡΠ°Π²ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΠ³Π»Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°.
__in int nBottomRect // Y-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°.
);
Sleep
ΠΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°.
VOID WINAPI Sleep (
__in DWORD dwMilliseconds // ΠΠ½ΡΠ΅ΡΠ²Π°Π» Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ, Π² ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Π°Ρ .
);
MoveToEx
Π€ΡΠ½ΠΊΡΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π² ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΠΎΡΠΊΡ.
BOOL MoveToEx (
__in HDC hdc, // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
__in int X, // X-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
__in int Y, // Y-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°.
__out LPPOINT lpPoint // Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° POINT ΡΡΡΡΠΊΡΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
);
LineTo
Π€ΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΡΠ΅Ρ Π»ΠΈΠ½ΠΈΡ ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π΄ΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ.
WINGDIAPI BOOL WINAPI LineTo (
HDC hdc, // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
int nXEnd, // X-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° ΠΊΠΎΠ½ΡΠ° Π»ΠΈΠ½ΠΈΠΈ.
int nYEnd // Y-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°.
);
4 ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ ΠΎΡΠ»Π°ΠΆΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
/*graph1.inc*/
WM_DESTROY equ2
WM_CREATE equ 1
WM_LBUTTONDOWN equ 201h
WM_RBUTTONDOWN equ 204h
VK_NUMLOCKequ90h
VK_SCROLLequ91h
VK_CAPITALequ14h
VK_HOME equ24h
VK_ESCAPEequ1Bh
VK_LEFT equ25h
VK_UP equ26h
VK_RIGHT equ 27h
VK_DOWN equ28h
WM_KEYDOWNequ100h
WM_PAINT equ 0FH
CS_VREDRAW equ 1h
CS_HREDRAW equ 2h
CS_GLOBALCLASS equ 4000h
WS_OVERLAPPEDWINDOW equ 000CF0000H
stylcl equ CS_HREDRAW + CS_VREDRAW + CS_GLOBALCLASS
IDI_WARNING equ 32 515
IDC_HAND equ32649
SW_SHOWNORMAL equ 1
EXTERN DefWindowProcA@16 :NEAR
EXTERN InvalidateRect@12 :NEAR
CreateWindowExA PROTO: DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
DispatchMessageA PROTO: DWORD
ExitProcess PROTO: DWORD
GetMessageA PROTO: DWORD, :DWORD:DWORD, :DWORD
GetModuleHandleA PROTO: DWORD
LoadCursorA PROTO: DWORD, :DWORD
LoadIconA PROTO: DWORD, :DWORD
PostQuitMessage PROTO: DWORD
RegisterClassA PROTO: DWORD
ShowWindow PROTO: DWORD, :DWORD
TranslateMessage PROTO: DWORD
UpdateWindow PROTO: DWORD
BeginPaint PROTO: DWORD, :DWORD
EndPaint PROTO: DWORD, :DWORD
CreateSolidBrush PROTO: DWORD
GetSystemMetrics PROTO: DWORD
GetDC PROTO: DWORD
CreateCompatibleDC PROTO: DWORD
SelectObject PROTO: DWORD, :DWORD
CreateCompatibleBitmap PROTO: DWORD, :DWORD, :DWORD
PatBlt PROTO: DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
BitBlt PROTO: DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
ReleaseDC PROTO: DWORD, :DWORD
DeleteObject PROTO: DWORD
DeleteDC PROTO: DWORD
Rectangle PROTO: DWORD, :DWORD, :DWORD, :DWORD, :DWORD
EllipsePROTO :DWORD, :DWORD, :DWORD, :DWORD, :DWORD
SleepPROTO :DWORD
MoveToExPROTO :DWORD, :DWORD, :DWORD, :DWORD
LineToPROTO :DWORD, :DWORD, :DWORD
MSGSTRUCT STRUC
MSHWND DD?
MSMESSAGE DD ?
MSWPARAM DD ?
MSLPARAM DD ?
MSTIME DD ?
MSPT DD ?
MSGSTRUCT ENDS
WNDCLASS STRUC
CLSSTYLE DD ?
CLSLPFNWNDPROCDD ?
CLSCBCLSEXTRA DD ?
CLSCBWNDEXTRA DD ?
CLSHINSTANCE DD ?
CLSHICON DD ?
CLSHCURSOR DD ?
CLSHBRBACKGROUND DD ?
MENNAME DD ?
CLSNAME DD ?
WNDCLASS ENDS
PAINTSTR STRUC
hdc DD 0
fErase DD 0
left DD 0
top DD 0
right DD 0
bottom DD 0
fRes DD 0
fIncUp DD 0
Reserv DB 32 dup (0)
PAINTSTR ENDS
RECT STRUC
L DD?
T DD ?
R DD ?
B DD ?
RECT ENDS
/*graph.asm*/
.386P
; ΠΏΠ»ΠΎΡΠΊΠ°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ
.MODEL FLAT, stdcall
include ./include/graph1.inc
; ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ
includelib ./lib/user32.lib
includelib ./lib/kernel32.lib
includelib ./lib/gdi32.lib
;=====================================================; ====================== Π‘ΠΠΠΠΠΠ’ ΠΠΠΠΠ«Π₯
;======================================================
_DATA SEGMENT DWORD PUBLIC USE32 'DATA'
NEWHWND DWORD 0
MSG MSGSTRUCT >
WC WNDCLASS >
PNT PAINTSTR >
HINST DWORD 0
TITLENAME BYTE 'ΠΡΠ°ΡΠΈΠΊΠ° Π² Windows. Π ΡΠ±Π°ΠΊΠΎΠ² ΠΠΎΠ½ΡΡΠ°Π½ΡΠΈΠ½.', 0
NAM BYTE 'CLASS32', 0
XM DWORD ?
YM DWORD ?
HDC DWORD ?
MEMDC DWORD ?
HBRUSHGREYDWORD ?
GREYDWORD0BEBEBEH
HBRUSHDGREYDWORD ?
DGREYDWORD0808080H
HBRUSHBLACKDWORD ?
BLACKDWORD0
HBRUSHGREENDWORD ?
GREENDWORD000FF00H
HBRUSHDGREENDWORD ?
DGREENDWORD008000H
HBRUSHREDDWORD ?
REDDWORD0FFH
HBRUSHWHITEDWORD ?
WHITEDWORD0FFFFFFH
HBRUSHBLUEDWORD ?
BLUEDWORDFFBF00H
HBRUSHDBLUEDWORD ?
DBLUEDWORD0800000H
HBRUSHYELLOWDWORD ?
YELLOWDWORD00FFFFH
PLBYTE 0; ΠΏΡΠΈΠ·Π½Π°ΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ
PHOMEBYTE 0; ΠΏΡΠΈΠ·Π½Π°ΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ HOME
PRIGHTBYTE 0; ΠΏΡΠΈΠ·Π½Π°ΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ RIGTH
PLEFTBYTE 0; ΠΏΡΠΈΠ·Π½Π°ΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ LEFT
PUPBYTE 1; ΠΏΡΠΈΠ·Π½Π°ΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ UP
PDOWNBYTE 1; ΠΏΡΠΈΠ·Π½Π°ΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ DOWN
; ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π΄Π»Ρ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ
; ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΡΠ·ΠΎΠ²Π°
KUZ1DWORD300
KUZ2DWORD366
; ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΠ°Π±ΠΈΠ½Ρ
KAB1DWORD365
KAB2DWORD385
KAB3DWORD405
; ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π½Π΅ΠΉ ΠΈ Π·Π°Π΄Π½ΠΈΡ ΡΠ°Ρ
PFARDWORD397
ZFAR1DWORD300
ZFAR2DWORD308
ZFAR3DWORD306
; ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π·Π°Π΄Π½Π΅Π³ΠΎ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠ»ΡΡ
ZKOL1DWORD323
ZKOL2DWORD343
PKOL1DWORD375
PKOL2DWORD395
; ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π΄Π»Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π΄ΡΠΌΠ°
dim0DWORD140
dim1DWORD115
dim2DWORD90
dim3DWORD65
dim4DWORD40
dim5DWORD15
dim6DWORD-10
PPERERISDWORD0; ΠΏΡΠΈΠ·Π½Π°ΠΊ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠΈ Π΄ΡΠΌΠ°
KRNDWORD100; ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° Π½Π°ΡΠ°Π»Π° Π΄ΠΎΠΌΠ°
_DATA ENDS
;======================================================
;======================== Π‘ΠΠΠΠΠΠ’ ΠΠΠΠ
;======================================================
_TEXT SEGMENT DWORD PUBLIC USE32 'CODE'
START:
; ————— ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ————-;
INVOKE GetModuleHandleA, 0
MOV [HINST], EAX
REG_CLASS:
; ————— Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΎΠΊΠ½Π° ————-;
MOV [WC.CLSSTYLE], stylcl; ΡΡΠΈΠ»Ρ
MOV [WC.CLSLPFNWNDPROC], OFFSET WNDPROC; ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
MOV [WC.CLSCBCLSEXTRA], 0
MOV [WC.CLSCBWNDEXTRA], 0
MOV EAX, [HINST]
MOV [WC.CLSHINSTANCE], EAX
; ————— ΠΈΠΊΠΎΠ½ΠΊΠ° ΠΎΠΊΠ½Π° ————-;
INVOKE LoadIconA, 0, IDI_WARNING
MOV [WC.CLSHICON], EAX
; ————— ΠΊΡΡΡΠΎΡ ΠΎΠΊΠ½Π° —————
INVOKE LoadCursorA, 0, IDC_HAND
MOV [WC.CLSHCURSOR], EAX
INVOKE CreateSolidBrush, 0FFFFFFh
MOV [WC.CLSHBRBACKGROUND], EAX
MOV DWORD PTR [WC.MENNAME], 0
MOV DWORD PTR [WC.CLSNAME], OFFSET NAM
INVOKE RegisterClassA, OFFSET WC
; ————— ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠΊΠ½ΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° —————
INVOKE CreateWindowExA, 0, OFFSET NAM, OFFSET TITLENAME, WS_OVERLAPPEDWINDOW, 250,200,640,480,0,0,[HINST], 0
; ————— ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΎΡΠΈΠ±ΠΊΡ ————-;
CMP EAX, 0
JZ _ERR
MOV [NEWHWND], EAX; Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠΊΠ½Π°
INVOKE ShowWindow,[NEWHWND], SW_SHOWNORMAL; ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ
INVOKE UpdateWindow,[NEWHWND]; ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΠΈΠ΄ΠΈΠΌΡΡ ΡΠ°ΡΡΡ ΠΎΠΊΠ½Π°
; ————— ΠΏΠ΅ΡΠ»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ————-;
MSG_LOOP:
INVOKE GetMessageA, OFFSET MSG, 0,0,0
CMP AX, 0
JE END_LOOP
INVOKE TranslateMessage, OFFSET MSG
INVOKE DispatchMessageA, OFFSET MSG
JMP MSG_LOOP
END_LOOP:
; ————— Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ————-;
INVOKE ExitProcess,[MSG.MSWPARAM]
_ERR:
JMP END_LOOP
; ————— ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΎΠΊΠ½Π° ————-;
; ————— ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² ΡΡΠ΅ΠΊΠ΅ ————-;
; [EBP+014Π]; LPARAM
; [EBP+10H]; WPARAM
; [EBP+0CH]; MES
; [EBP+8]; HWND
;———————————————————————————————;
WNDPROC PROC
PUSH EBP
MOV EBP, ESP
PUSH EBX
PUSH ESI
PUSH EDI
CMP DWORD PTR [EBP+0CH], WM_PAINT; ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_PAINT — ΠΏΡΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠΊΠ½Π°
JE WMPAINT
CMP DWORD PTR [EBP+0CH], WM_DESTROY; ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_DESTROY — ΠΏΡΠΈ Π·Π°ΠΊΡΡΡΠΈΠΈ ΠΎΠΊΠ½Π°
JE WMDESTROY
CMP DWORD PTR [EBP+0CH], WM_CREATE; ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM CREATE — ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠΊΠ½Π°
JE WMCREATE
CMP DWORD PTR [EBP+0CH], WM_LBUTTONDOWN; ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_LBUTTONDOWN — ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ
JE LBUTTON
CMP DWORD PTR [EBP+0CH], WM_KEYDOWN; ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_KEYDOWN — ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡ
JE KEY_DOWN
JMP DEFWNDPROC
LBUTTON:
NOT PL; ΠΏΡΠΈΠ·Π½Π°ΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ
KEY_DOWN:
CMP DWORD PTR [EBP+10H], VK_HOME
JNE HOME_NODOWN
NOT PHOME; ΠΏΡΠΈΠ·Π½Π°ΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ HOME
HOME_NODOWN:
CMP DWORD PTR [EBP+10H], VK_UP
JNE UP_NODOWN
NOT PUP; ΠΏΡΠΈΠ·Π½Π°ΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ UP
MOV PDOWN, 1; ΠΏΡΠΈΠ·Π½Π°ΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ DOWN
UP_NODOWN:
CMP DWORD PTR [EBP+10H], VK_DOWN
JNE DOWN_NODOWN
NOT PDOWN; ΠΏΡΠΈΠ·Π½Π°ΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ DOWN
MOV PUP, 1; ΠΏΡΠΈΠ·Π½Π°ΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ UP
DOWN_NODOWN:
CMP DWORD PTR [EBP+10H], VK_RIGHT
JNE R_NODOWN
MOV PRIGHT, 1; ΠΏΡΠΈΠ·Π½Π°ΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ RIGTH
MOV PUP, 1; ΠΏΡΠΈΠ·Π½Π°ΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ UP
MOV PDOWN, 1; ΠΏΡΠΈΠ·Π½Π°ΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ DOWN
R_NODOWN:
CMP DWORD PTR [EBP+10H], VK_LEFT
JNE L_NODOWN
MOV PLEFT, 1; ΠΏΡΠΈΠ·Π½Π°ΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ LEFT
MOV PUP, 1; ΠΏΡΠΈΠ·Π½Π°ΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ UP
MOV PDOWN, 1; ΠΏΡΠΈΠ·Π½Π°ΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ DOWN
L_NODOWN:
;————— ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π° ————-;
PUSH 0
PUSH OFFSET RECT
PUSH DWORD PTR [EBP+08H]
CALL InvalidateRect@12
;——————————————————————————————;
WMPAINT:
INVOKE BeginPaint, DWORD PTR [EBP+08H], OFFSET PNT
MOV HDC, EAX; ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ (Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ)
INVOKE CreateSolidBrush, 08B8B83h; ΡΠΎΠ½
INVOKE SelectObject, MEMDC, EAX
; ————— Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ————-;
; 0F00021H Π ΠΠ’Π‘ΠΠ Π£ — Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ
INVOKE PatBlt, MEMDC, 0,0,XM, YM, 0F00021H
; ————— ΠΠΠΠΠΠ —————
; ————— Π½ΠΎΡΡ ————-;
INVOKE SelectObject, MEMDC, HBRUSHDBLUE
INVOKE Rectangle, MEMDC, 0,0,640,276; Π½ΠΎΡΠ½ΠΎΠ΅ Π½Π΅Π±ΠΎ
INVOKE SelectObject, MEMDC, HBRUSHDGREEN
INVOKE Rectangle, MEMDC, 0,275,640,480; Π½ΠΎΡΠ½Π°Ρ ΡΡΠ°Π²Π°
INVOKE SelectObject, MEMDC, HBRUSHBLACK
INVOKE Rectangle, MEMDC, 50,250,55,300; ΡΡΠ²ΠΎΠ» Π΄Π΅ΡΠ΅Π²Π°
INVOKE SelectObject, MEMDC, HBRUSHDGREEN
INVOKE Ellipse, MEMDC, 25,210,45,230; Π½ΠΎΡΠ½Π°Ρ ΠΊΡΠΎΠ½Π°
INVOKE Ellipse, MEMDC, 27,210,77,280; Π½ΠΎΡΠ½Π°Ρ ΠΊΡΠΎΠ½Π°
INVOKE Ellipse, MEMDC, 50,230,80,260; Π½ΠΎΡΠ½Π°Ρ ΠΊΡΠΎΠ½Π°
; ————— Π·Π²ΡΠ·Π΄Ρ —————
INVOKE SelectObject, MEMDC, HBRUSHWHITE
INVOKE Ellipse, MEMDC, 50,50,55,55
INVOKE Ellipse, MEMDC, 500,100,505,105
INVOKE Ellipse, MEMDC, 80,200,85,205
INVOKE Ellipse, MEMDC, 550,175,555,180
INVOKE Ellipse, MEMDC, 350,75,355,80
INVOKE Ellipse, MEMDC, 75,50,125,100; ΠΡΠ½Π°
; ————— Π΄Π΅Π½Ρ ————-;
CMP PL, 0
JNE LBUTTON_NO_DOWN
INVOKE SelectObject, MEMDC, HBRUSHBLUE
INVOKE Rectangle, MEMDC, 0,0,640,276; Π΄Π½Π΅Π²Π½ΠΎΠ΅ Π½Π΅Π±ΠΎ
INVOKE SelectObject, MEMDC, HBRUSHYELLOW
INVOKE Ellipse, MEMDC, 475,50,525,100; Π‘ΠΎΠ»Π½ΡΠ΅
INVOKE SelectObject, MEMDC, HBRUSHGREEN
INVOKE Rectangle, MEMDC, 0,275,640,480; Π΄Π½Π΅Π²Π½Π°Ρ ΡΡΠ°Π²Π°
INVOKE SelectObject, MEMDC, HBRUSHBLACK
INVOKE Rectangle, MEMDC, 50,250,55,300; ΡΡΠ²ΠΎΠ»
INVOKE SelectObject, MEMDC, HBRUSHGREEN
INVOKE Ellipse, MEMDC, 25,210,45,230; Π΄Π½Π΅Π²Π½Π°Ρ ΠΊΡΠΎΠ½Π°
INVOKE Ellipse, MEMDC, 27,210,77,280; Π΄Π½Π΅Π²Π½Π°Ρ ΠΊΡΠΎΠ½Π°
INVOKE Ellipse, MEMDC, 50,230,80,260; Π΄Π½Π΅Π²Π½Π°Ρ ΠΊΡΠΎΠ½Π°
LBUTTON_NO_DOWN:
; ————— ΠΠΠ —————
INVOKE SelectObject, MEMDC, HBRUSHGREY
INVOKE Rectangle, MEMDC, 100,200,250,350; Π΄ΠΎΠΌ
INVOKE Rectangle, MEMDC, 60,340,101,350; ΡΡΡΠΏΠ΅Π½ΡΠΊΠ° 1
INVOKE Rectangle, MEMDC, 70,330,101,341; ΡΡΡΠΏΠ΅Π½ΡΠΊΠ° 2
INVOKE Rectangle, MEMDC, 80,320,101,331; ΡΡΡΠΏΠ΅Π½ΡΠΊΠ° 3
INVOKE SelectObject, MEMDC, HBRUSHDGREY
INVOKE Rectangle, MEMDC, 150,250,200,300; ΡΡΠΌΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ
; ————— Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠ²Π΅Ρ ————-;
CMP PHOME, 0
JNE HOME_NO_DOWN
INVOKE SelectObject, MEMDC, HBRUSHYELLOW
INVOKE Rectangle, MEMDC, 150,250,200,300; ΡΠ²Π΅ΡΠ»ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ
HOME_NO_DOWN:
; ————— ΡΠ°ΠΌΡ ΠΎΠΊΠ½Π° ————-;
INVOKE MoveToEx, MEMDC, 150,265,0
INVOKE LineTo, MEMDC, 200,265
INVOKE MoveToEx, MEMDC, 175,265,0
INVOKE LineTo, MEMDC, 175,300
; ————— ΠΊΡΡΡΠ° ————-;
INVOKE MoveToEx, MEMDC, 100,200,0; ΠΊΡΡΡΠ°
INVOKE LineTo, MEMDC, 175,110
INVOKE LineTo, MEMDC, 250,200
INVOKE SelectObject, MEMDC, HBRUSHRED
MOV KRN, 100
metka3:
INVOKE MoveToEx, MEMDC, 175,110,0
INVOKE LineTo, MEMDC, KRN, 200
INC KRN
CMP KRN, 250
JNE metka3
; ————— Π΄ΡΠΌ ————-;
CMP PPERERIS, 0
JE ne_men1
INVOKE MoveToEx, MEMDC, 200, dim0,0
INVOKE LineTo, MEMDC, 225, dim1
INVOKE LineTo, MEMDC, 200, dim2
INVOKE LineTo, MEMDC, 225, dim3
INVOKE LineTo, MEMDC, 200, dim4
INVOKE LineTo, MEMDC, 225, dim5
INVOKE LineTo, MEMDC, 200, dim6
JMP MET
ne_men1:
INVOKE MoveToEx, MEMDC, 225, dim0,0
INVOKE LineTo, MEMDC, 200, dim1
INVOKE LineTo, MEMDC, 225, dim2
INVOKE LineTo, MEMDC, 200, dim3
INVOKE LineTo, MEMDC, 225, dim4
INVOKE LineTo, MEMDC, 200, dim5
INVOKE LineTo, MEMDC, 225, dim6
MET:
; ————— ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π΄ΡΠΌΠ° ————-;
DEC dim0
DEC dim1
DEC dim2
DEC dim3
DEC dim4
DEC dim5
DEC dim6
CMP dim5,-10; Π²ΡΡ ΠΎΠ΄ Π΄ΡΠΌΠ° Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΠΊΡΠ°Π½Π°
JNE ne_vishel
NOT PPERERIS
MOV dim0,140
MOV dim1,115
MOV dim2,90
MOV dim3,65
MOV dim4,40
MOV dim5,15
MOV dim6,-10
ne_vishel:
; ————— ΡΡΡΠ±Π° ————-;
INVOKE SelectObject, MEMDC, HBRUSHBLACK
INVOKE Rectangle, MEMDC, 198,115,227,190
; ————— ΠΠΠΠΠΠΠΠ ΠΠΠ’ΠΠΠΠΠΠΠ― ————-;
; ————— Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ Π² ΡΠΈΠΊΠ»Π΅ ΠΏΠΎ ΠΊΡΡΠ³Ρ Π²ΠΏΡΠ°Π²ΠΎ ————-;
CMP PUP, 1
JNE @2
; ————— Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΏΡΠ°Π²ΠΎ ————-;
CMP PRIGHT, 1
JNE metka1
@2:
; ————— ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ————-;
ADD KUZ1,2
ADD KUZ2,2
ADD KAB1,2
ADD KAB2,2
ADD KAB3,2
ADD PFAR, 2
ADD ZFAR1,2
ADD ZFAR2,2
ADD ZFAR3,2
ADD ZKOL1,2
ADD ZKOL2,2
ADD PKOL1,2
ADD PKOL2,2
MOV PRIGHT, 0
JMP @7
metka1:
; ————— Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ Π² ΡΠΈΠΊΠ»Π΅ ΠΏΠΎ ΠΊΡΡΠ³Ρ Π²Π»Π΅Π²ΠΎ ————-;
CMP PDOWN, 1
JNE @6
; ————— Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²Π»Π΅Π²ΠΎ ————-;
CMP PLEFT, 1
JNE metka2
@6:
; ————— ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ————-;
SUB KUZ1,2
SUB KUZ2,2
SUB KAB1,2
SUB KAB2,2
SUB KAB3,2
SUB PFAR, 2
SUB ZFAR1,2
SUB ZFAR2,2
SUB ZFAR3,2
SUB ZKOL1,2
SUB ZKOL2,2
SUB PKOL1,2
SUB PKOL2,2
metka2:
@7:
; ————— ΠΠΠ’ΠΠΠΠΠΠΠ¬ ————-;
INVOKE SelectObject, MEMDC, HBRUSHDGREY
INVOKE Rectangle, MEMDC, KUZ1,300,KUZ2,350; ΠΊΡΠ·ΠΎΠ²
INVOKE SelectObject, MEMDC, HBRUSHBLUE
INVOKE Rectangle, MEMDC, KAB1,310,KAB2,331; ΠΊΠ°Π±ΠΈΠ½Π°
INVOKE Rectangle, MEMDC, KAB1,330,KAB3,350; ΠΊΠ°Π±ΠΈΠ½Π°
INVOKE SelectObject, MEMDC, HBRUSHWHITE
ADD KAB1,2
SUB KAB2,2
INVOKE Rectangle, MEMDC, KAB1,312,KAB2,329; ΡΡΠ΅ΠΊΠ»ΠΎ
ADD KAB2,2
SUB KAB1,2
INVOKE SelectObject, MEMDC, HBRUSHRED
INVOKE Rectangle, MEMDC, ZFAR1,332,ZFAR2,343; Π·Π°Π΄Π½ΡΡ ΡΠ°ΡΠ°
INVOKE SelectObject, MEMDC, HBRUSHWHITE
INVOKE Rectangle, MEMDC, PFAR, 332, KAB3,338; ΠΏΠ΅ΡΠ΅Π΄Π½ΡΡ ΡΠ°ΡΠ°
; ————— Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π½Π΅Π³ΠΎ Π³Π°Π±Π°ΡΠΈΡΠ° ————-;
CMP PDOWN, 1
JNE @8
CMP PLEFT, 1
JNE ne_garit
@8:
INVOKE SelectObject, MEMDC, HBRUSHWHITE
INVOKE Rectangle, MEMDC, ZFAR1,334,ZFAR3,341; Π·Π°Π΄Π½ΠΈΠΉ Π³Π°Π±Π°ΡΠΈΡ
MOV PLEFT, 0
ne_garit:
INVOKE SelectObject, MEMDC, HBRUSHBLACK
INVOKE Ellipse, MEMDC, ZKOL1,340,ZKOL2,360; Π·Π°Π΄Π½Π΅Π΅ ΠΊΠΎΠ»Π΅ΡΠΎ
INVOKE Ellipse, MEMDC, PKOL1,340,PKOL2,360; ΠΏΠ΅ΡΠ΅Π΄Π½Π΅Π΅ ΠΊΠΎΠ»Π΅ΡΠΎ
INVOKE SelectObject, MEMDC, HBRUSHGREY
; ————— ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΊΠΎΠ»Π΅ΡΠ° Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΈΡΠΊΠΎΠ² ————-;
ADD ZKOL1,3
SUB ZKOL2,3
ADD PKOL1,3
SUB PKOL2,3
INVOKE Ellipse, MEMDC, ZKOL1,343,ZKOL2,357; Π·Π°Π΄Π½ΠΈΠΉ Π΄ΠΈΡΠΊ
INVOKE Ellipse, MEMDC, PKOL1,343,PKOL2,357; ΠΏΠ΅ΡΠ΅Π΄Π½ΠΈΠΉ Π΄ΠΈΡΠΊ
; ————— Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΊΠΎΠ»Π΅ΡΠ° ————-;
ADD ZKOL2,3
SUB ZKOL1,3
ADD PKOL2,3
SUB PKOL1,3
; ————— Π²ΡΡ ΠΎΠ΄ ΠΌΠ°ΡΠΈΠ½Ρ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΏΡΠ°Π²ΠΎΠΉ Π³ΡΠ°Π½ΠΈΡΡ ΠΎΠΊΠ½Π° ————-;
CMP KUZ1,640
JNE ne_vishla
; ——— Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Ρ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ Π»Π΅Π²ΠΎΠΉ Π³ΡΠ°Π½ΠΈΡΡ ΠΎΠΊΠ½Π° —;
MOV KUZ1, 300−410; ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ
MOV KUZ2, 366−410; ΠΊΡΠ·ΠΎΠ²Π°
MOV KAB1, 365−410; ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ
MOV KAB2, 385−410; ΠΊΠ°Π±ΠΈΠ½Ρ
MOV KAB3, 405−410; ΠΊΠ°Π±ΠΈΠ½Ρ
MOV PFAR, 397−410; ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π½Π΅ΠΉ ΡΠ°ΡΡ
MOV ZFAR1, 300−410; ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ
MOV ZFAR2, 308−410; Π·Π°Π΄Π½Π΅ΠΉ ΡΠ°ΡΡ
MOV ZFAR3, 306−410; Π·Π°Π΄Π½Π΅Π³ΠΎ Π³Π°Π±Π°ΡΠΈΡΠ°
MOV ZKOL1, 323−410; ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ
MOV ZKOL2, 343−410; Π·Π°Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠ»Π΅ΡΠ°
MOV PKOL1, 375−410; ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ
MOV PKOL2, 395−410; ΠΏΠ΅ΡΠ΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠ»Π΅ΡΠ°
JMP @1
ne_vishla:
; ————— Π²ΡΡ ΠΎΠ΄ ΠΌΠ°ΡΠΈΠ½Ρ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ Π»Π΅Π²ΠΎΠΉ Π³ΡΠ°Π½ΠΈΡΡ ΠΎΠΊΠ½Π° ————-;
CMP KUZ1,-110
JNE ne_vishla1
; ——- Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Ρ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΏΡΠ°Π²ΠΎΠΉ Π³ΡΠ°Π½ΠΈΡΡ ΠΎΠΊΠ½Π° —;
MOV KUZ1, 300+340; ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ
MOV KUZ2, 366+340; ΠΊΡΠ·ΠΎΠ²Π°
MOV KAB1, 365+340; ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ
MOV KAB2, 385+340; ΠΊΠ°Π±ΠΈΠ½Ρ
MOV KAB3, 405+340; ΠΊΠ°Π±ΠΈΠ½Ρ
MOV PFAR, 397+340; ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π½Π΅ΠΉ ΡΠ°ΡΡ
MOV ZFAR1, 300+340; ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ
MOV ZFAR2, 308+340; Π·Π°Π΄Π½Π΅ΠΉ ΡΠ°ΡΡ
MOV ZFAR3, 306+340; Π·Π°Π΄Π½Π΅Π³ΠΎ Π³Π°Π±Π°ΡΠΈΡΠ°
MOV ZKOL1, 323+340; ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ
MOV ZKOL2, 343+340; Π·Π°Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠ»Π΅ΡΠ°
MOV PKOL1, 375+340; ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ
MOV PKOL2, 395+340; ΠΏΠ΅ΡΠ΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠ»Π΅ΡΠ°
ne_vishla1:
@1:
;————— ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π° ————-;
INVOKE Sleep, 23
PUSH 0
PUSH OFFSET RECT
PUSH DWORD PTR [EBP+08H]
CALL InvalidateRect@12
; ————— ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΠΎΠ΅ ————-;
INVOKE BitBlt, HDC, 0,0,XM, YM, MEMDC, 0,0,0CC0020h
; ————— Π·Π°ΠΊΡΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΎΠΊΠ½Π° ————-;
INVOKE EndPaint, DWORD PTR [EBP+08H], OFFSET PNT
MOV EAX, 0
JMP FINISH
;———————————————————————————————;
WMCREATE:
; ————— ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΠΊΡΠ°Π½Π° ————-;
INVOKE GetSystemMetrics, 0
MOV XM, EAX
INVOKE GetSystemMetrics, 1
MOV YM, EAX
; ————— ΠΎΡΠΊΡΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΎΠΊΠ½Π° ————-;
INVOKE GetDC, DWORD PTR [EBP+08H]
MOV HDC, EAX
; ————— ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ Ρ Π΄Π°Π½Π½ΡΠΌ ΠΎΠΊΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ————-;
INVOKE CreateCompatibleDC, EAX
MOV MEMDC, EAX
; ——- ΡΠΎΠ·Π΄Π°ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΡΠ°ΡΡΡΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠ΅ Ρ hdc ——-;
INVOKE CreateCompatibleBitmap, HDC, XM, YM
; ————— Π²ΡΠ±ΡΠ°ΡΡ ΡΠ°ΡΡΡΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ————-;
INVOKE SelectObject, MEMDC, EAX
; ————— ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΈΡΡΠΈ ————-;
INVOKE CreateSolidBrush, GREY
MOV HBRUSHGREY, EAX
INVOKE CreateSolidBrush, BLACK
MOV HBRUSHBLACK, EAX
INVOKE CreateSolidBrush, GREEN
MOV HBRUSHGREEN, EAX
INVOKE CreateSolidBrush, RED
MOV HBRUSHRED, EAX
INVOKE CreateSolidBrush, WHITE
MOV HBRUSHWHITE, EAX
INVOKE CreateSolidBrush, BLUE
MOV HBRUSHBLUE, EAX
INVOKE CreateSolidBrush, YELLOW
MOV HBRUSHYELLOW, EAX
INVOKE CreateSolidBrush, DGREY
MOV HBRUSHDGREY, EAX
INVOKE CreateSolidBrush, DBLUE
MOV HBRUSHDBLUE, EAX
INVOKE CreateSolidBrush, DGREEN
MOV HBRUSHDGREEN, EAX
; ————— ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ————-;
INVOKE ReleaseDC, DWORD PTR [EBP+08H], HDC
MOV EAX, 0
JMP FINISH
; ———————————————————————————————;
DEFWNDPROC:
PUSH DWORD PTR [EBP+14H]
PUSH DWORD PTR [EBP+10H]
PUSH DWORD PTR [EBP+0CH]
PUSH DWORD PTR [EBP+08H]
CALL DefWindowProcA@16
JMP FINISH
; ———————————————————————————————;
WMDESTROY:
; ————— ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΈΡΡΠΈ ————-;
INVOKE DeleteDC, HBRUSHGREY
INVOKE DeleteDC, HBRUSHBLACK
INVOKE DeleteDC, HBRUSHGREEN
INVOKE DeleteDC, HBRUSHRED
INVOKE DeleteDC, HBRUSHWHITE
INVOKE DeleteDC, HBRUSHBLUE
INVOKE DeleteDC, HBRUSHDBLUE
INVOKE DeleteDC, HBRUSHYELLOW
INVOKE DeleteDC, HBRUSHDGREY
INVOKE DeleteDC, HBRUSHDGREEN
; ————— ΡΠ΄Π°Π»ΠΈΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ————-;
INVOKE DeleteDC, MEMDC
INVOKE PostQuitMessage, 0
MOV EAX, 0
;———————————————————————————————;
FINISH:
POP EDI
POP ESI
POP EBX
POP EBP
RET 16
WNDPROC ENDP
_TEXT ENDS
END START
5. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΡΠ²ΠΎΠ΄
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ»Π° ΠΈΠ·ΡΡΠ΅Π½Π° Π³ΡΠ°ΡΠΈΠΊΠ° Π² Windows, Π½Π°ΠΏΠΈΡΠ°Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° 32-Π±ΠΈΡΠ½ΠΎΠΌ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅.