ΠΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΡΡΠ΅Π΄Π΅ Windows
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Win32 API — ΡΠ°ΠΌ ΠΏΡΠΈΠ½ΡΡΠΎ, ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΎΠΊΠ½Ρ, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΡΠ΅ΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠΎ ΠΎΠΊΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π». ΠΡΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ (Π½Π΅ ΠΏΠΎΡΡΠ»ΠΊΠΈ) ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠΊΠ½Ρ, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌΡ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ — ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠΈΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Ρ ΡΠ»Π°Π³ΠΎΠΌ `ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ΅… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΡΡΠ΅Π΄Π΅ Windows (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΡΠ½ΠΎΠ²Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΡΠ΅Π΄Π΅ Windows
ΠΡΠ°ΠΊ, ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Ρ ΠΎΡΠ°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΡΠ΅Π΄Π΅ Windows ΠΈ ΠΎΡΠΌΠ΅ΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½ΡΠ°Π½ΡΠΎΠ²:
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΡΠ΅Π΄Π΅ Windows, ΠΊΠ°ΠΊ ΠΈ Π² ΡΡΠ΅Π΄Π΅ DOS, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ «Π³Π»Π°Π²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ» (WinMain), Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ WinMain.
ΠΠ±ΡΡΠ½ΠΎ, Ρ ΠΎΡΡ ΡΡΠΎ ΠΈ Π½Π΅ ΠΎΠ±ΡΠ·ΡΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠ½ΠΊΡΠΈΡ WinMain ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡ Π΅ΠΌΡ:
1) Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΎΠ½Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ
2) ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΡΠ°ΡΡΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΎΠΊΠΎΠ½ (ΠΎΠΊΠΎΠ½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ);
3) ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅ΡΡΡ ΡΠΈΠΊΠ» ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ±ΡΡΠ½ΠΎ ΡΠΈΠΊΠ» Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΈ Π·Π°ΠΊΡΡΡΠΈΠΈ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (Π½Π΅ Π²ΡΠ΅Π³Π΄Π°)
4) ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠΈΠΊΠ»Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ «Π΄Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ» Π΄Π°Π½Π½ΡΡ ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π°Π½ΡΡΡΡ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΡ WinMain () Π·Π°ΠΊΠ½ΡΠΈΠ²Π°Π΅ΡΡΡ.
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠΉ:
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ 1. ΠΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ (ΠΏΠΎΡΡΠ΄ΠΊΠ° 1 ΡΠ΅ΠΊ.) ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π½Π΅ ΡΡΠ΅Π±ΡΡΡΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄ ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ), ΡΠΎ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ WinMain () Π±Π΅Π· ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠΊΠΎΠ½ ΠΈ Π±Π΅Π· ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΠΊΠ»Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ 2. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π±Π΅Π· ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΎΠΊΠΎΠ½ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΠΊΠ»Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠΉ Π΄ΠΈΠ°Π»ΠΎΠ³.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ 3. Π ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ WinMain () Π΅ΠΉ, ΡΠ΅ΡΠ΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Ρ Π΅Π½Π΄Π» ΠΊΠΎΠΏΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (hInstance). ΠΠΎ Π²ΡΠ·ΠΎΠ²Π° WinMain () ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ «Π½Π΅ Π·Π½Π°Π΅Ρ» ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ . ΠΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² (C++).
ΠΡΠ° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ, Π²ΠΎΠΎΠ±ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½Π°. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ WinMain () Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π½Π΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠ΅Π΄ΠΎΠΉ Windows, Π° ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΌ startup-ΠΊΠΎΠ΄ΠΎΠΌ, ΡΠ²Π»ΡΡΡΠΈΠΌΡΡ ΡΠ°ΡΡΡΡ run-time Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (ΠΊΠ°ΠΊ ΠΈ Π² DOS-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ ). ΠΡΠΎΡ ΠΊΠΎΠ΄ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΡΡΡ, ΡΡΠ΅ΠΊ, ΠΎΠ±Π½ΡΠ»ΡΠ΅Ρ Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π΄ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ WinMain ().
Windows Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠΎΡ startup-ΠΊΠΎΠ΄, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ Π΅ΠΌΡ Π½ΡΠΆΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π· ΡΠ΅Π³ΠΈΡΡΡΡ. Π’ΠΎ Π΅ΡΡΡ, Π² ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ WinMain () ΡΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ, ΠΈ, Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ΠΈ Π΄Π°ΠΆΠ΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½Ρ Π² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ ΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π½Π΅ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΊΠ°ΠΊ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΠΈ ΡΠ²Π»ΡΡΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ Π΄Π»Ρ startup-ΠΊΠΎΠ΄Π°.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ 4. Π¦ΠΈΠΊΠ» ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π² ΡΠΎΠΌ Π²ΠΈΠ΄Π΅, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°ΠΌΠΈ, Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΎΠΊΠΎΠ½ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ»Ρ Π΅Π³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_QUIT, ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΈΠ· ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠΈΠΊΠ»Π°.
ΠΡΠΈ ΡΡΠΎΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΡΠΎ Π±Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_QUIT ΠΏΠΎΡΡΠ»Π°Π»ΠΎΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ PostMessage (), PostAppMessage () ΠΈΠ»ΠΈ PostQuitMessage () (ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ). ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ ΠΏΡΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠΈ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_DESTROY Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠΎΠΌΡ ΠΎΠΊΠ½Ρ). Π Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡ ΠΎΠ±ΡΠ·Π°Π½Ρ ΡΠ°ΠΌΠΈ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΠΏΠΎΡΡΠ»ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_QUIT, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π΅ ΠΏΠΎΡΡΠ»Π΅Ρ Π΅Π³ΠΎ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅, Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΡΠΈΠΊΠ»Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. Π’Π°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π² ΡΠΈΠΊΠ»Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ Ρ Π΅Π½Π΄Π»Π° Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°:
while (IsWindow (hMainWnd)) {
if (!GetMessage (&msg, NULL, NULL, NULL)) break;
TranslateMessage (&msg);
DispatchMessage (&msg);
}
ΠΡΠ»ΠΈ ΡΠΈΠΊΠ» ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅ΡΠ²Π°Π½ ΠΏΡΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ, Π° Ρ ΠΠ°Ρ ΡΠΆΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΡΠ΅Π΄ΡΡΠ² Π΄Π»Ρ Π΅Π³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ, ΠΊΡΠΎΠΌΠ΅ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· Windows. ΠΡΠΈ ΡΡΠΎΠΌ ΠΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΡΠ΅Π·Π½Π΅Ρ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Task Manager (ΡΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ, Π²ΠΎΠΎΠ±ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ Π·Π°Π΄Π°ΡΠΈ, Π° Π³Π»Π°Π²Π½ΡΠ΅ ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ).
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ 5. Windows Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄ΠΎΠΉ. Π₯ΠΎΡΡ ΠΎΠΊΠ½ΠΎ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°Π·Π²Π°Π½ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΠΠ, Π½ΠΎ Π»ΠΈΡΡ Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΉ Π½Π°ΡΡΠΆΠΊΠΎΠΉ. Π‘Π°ΠΌΠΎΠ΅ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΠΊΠ½Π° Π² Windows ΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΠΠ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠ΅ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, Π° ΡΠ²Π»ΡΠ΅ΡΡΡ «ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠΌ», ΡΠΊΠ°Π·ΡΠ²Π°Ρ Π½Π° ΡΠΎ, ΡΡΠΎ Π½Π°Π΄ ΠΎΠΊΠ½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ° ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΊΠ°ΠΊΠΈΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ.
ΠΠΎΡΡΠ½ΠΈΠΌ ΡΡΠΎ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠΊΠ½Π°. Π ΡΠ»ΡΡΠ°Π΅ «ΡΠΈΡΡΠΎΠ³ΠΎ» ΠΠΠ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ «create», ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ Π΅Π³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π Windows ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_CREATE Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠΊΠ½Π°. ΠΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΎΠΊΠ½ΠΎ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π² ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠΊΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ CreateWindowEx (). ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΈΠ»ΠΈ Π½Π΅ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ — ΠΎΠΊΠ½ΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΎ.
ΠΡΠ»ΠΈ Π±Ρ Π²ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ ΠΎΠΊΠ½ΠΎΠΌ Π±ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΌΠΈ, ΡΠΎ ΠΊ ΡΡΠΎΠΌΡ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±ΠΈΡΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΡ Π΅Π΅ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ ΡΠ°ΠΌΠΈ, Π° Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ°ΠΊΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΡ ΡΠΆΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ΅ ΡΡΠΎ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΡΡΠ΅Π΄Π΅ Windows.
Π‘ΠΈΡΡΠ°ΡΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ³ΡΠ±Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠΎΠΎΠ±ΡΠ°Π΅ΡΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠ΅ (ΠΈΠ»ΠΈ Π½Π΅ΠΏΠΎΠ»Π½ΡΠ΅) ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ , Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ, ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅. Help, ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠΈΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ Borland Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΡΠΉ ΠΈΠ· Π²ΡΠ΅Ρ (Π½ΠΎ Π½Π΅ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠΈΠΉ).
ΠΠ»Ρ ΠΎΠΊΠΎΠ½, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π΅ DefWindowProc (), Π° ΠΈΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, DefMDIChildProc ()), ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΎΡΠ½ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ ΡΡΠΎΡΠ½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΊΠΎΡΠΎΡΡΡ Π΄Π»Ρ DefWindowProc () ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ, Π° Π΄Π»Ρ ΠΈΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π΅Π»ΡΠ·Ρ, ΡΠΏΠΈΡΠΎΠΊ ΠΆΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π»Ρ DefWindowProc (), Π° ΡΡΠΎ Π½Π΅Π»ΡΠ·Ρ ΠΎΡΡΠ°Π΅ΡΡΡ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌ.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ 6. Π Windows ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΠΏΡΡΠ°Π½ΠΈΡΠ° ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ². ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΈΠ· Π½ΠΈΡ . ΠΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΠΎΠΊΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΡ :
ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎΠΌ, ΡΠΎ Π΅ΡΡΡ Π±ΡΡΡ «ΡΠ°ΡΠΏΠ°Ρ Π½ΡΡΡΠΌ» Π½Π° Π²Π΅ΡΡ ΡΠΊΡΠ°Π½ — ΠΏΡΠΈ ΡΡΠΎΠΌ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΎΠΊΠ½Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π²Π΅ΡΡ ΡΠΊΡΠ°Π½, ΠΊΡΠΎΠΌΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΠΎΠ»ΠΎΡ ΡΠ²Π΅ΡΡ Ρ — Π³Π΄Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΈ ΠΌΠ΅Π½Ρ, ΡΠ½ΠΈΠ·Ρ — Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ»ΠΎΡΠ° ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΈ ΡΠΏΡΠ°Π²Π° — Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ»ΠΎΡΠ° ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ; ΡΠ°ΠΌΠΊΠ° ΠΎΠΊΠ½Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΡΠΊΡΠ°Π½Π°, ΠΌΡ Π΅Π΅ Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
ΠΠ»Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠΊΠ½Π° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ShowWindow ΡΠΎ ΡΠ»Π΅Π΄ΡΡΠΈΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ:
ShowWindow (hWnd, SHOW_FULLSCREEN);
ShowWindow (hWnd, SW_SHOWMAXIMIZED);
ShowWindow (hWnd, SW_MAXIMIZE);
ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π²ΡΠ΅Π³Π΄Π° Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π°. ΠΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΠΎΠΊΠ½ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ, Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π²Π΅ΡΡ Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_SIZE, ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΡΡΠ΅Π΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ «Π·Π°ΠΊΡΡΡΡ» ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΎΠΊΠ½ΠΎΠΌ.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ·Π½Π°ΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ Π½Π°ΡΠ΅ ΠΎΠΊΠ½ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
BOOL IsZoomed (hWnd);
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠΊΠ½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΡΠ½ΠΊΡ Maximize, Π²ΡΠ±ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ SC_MAXIMIZE (ΠΈΠ»ΠΈ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌ SC_ZOOM). (ΡΠΌ. ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_SYSCOMMAND)
ΠΠ΄Π΅ΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π° maximize ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ zoom.
ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ, ΡΠΎ Π΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΌ Π² Π²ΠΈΠ΄Π΅ ΠΈΠΊΠΎΠ½ΠΊΠΈ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ ΠΎΠΊΠ½ΠΎ Π² ΠΈΠΊΠΎΠ½ΠΊΡ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ²:
ShowWindow (hWnd, SHOW_ICONWINDOW);
ShowWindow (hWnd, SW_SHOWMINIMIZED);
ShowWindow (hWnd, SW_SHOWMINNOACTIVE);
ShowWindow (hWnd, SW_MINIMIZE);
CloseWindow (hWnd);
Π Π°Π·Π½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ ShowWindow, ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΠΎΠΊΠ½Π°. SW_SHOWMINIMIZED ΠΈ SHOW_ICONWINDOW ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΎΠΊΠ½ΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΈΠΊΠΎΠ½ΠΊΠΈ, Π΄Π΅Π»Π°Ρ Π΅Π³ΠΎ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ; SW_SHOWMINNOACTIVE Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°; SW_MINIMIZE (ΠΊΠ°ΠΊ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ CloseWindow ()) Π΄Π΅Π»Π°Π΅Ρ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΎΠΊΠ½ΠΎ Π² ΡΠΏΠΈΡΠΊΠ΅ Windows. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ ΠΏΡΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ — ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
BOOL IsIconic (hWnd);
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ ΠΏΡΠ΅Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΎΠΊΠ½Π° Π² ΠΈΠΊΠΎΠ½ΠΊΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΡΠ½ΠΊΡ `Minimize', ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡΠΈΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ SC_MINIMIZE (ΠΈΠ»ΠΈ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌ SC_ICON). (ΡΠΌ. ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_SYSCOMMAND)
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ°Π·Ρ ΡΡΠΈ ΡΠ°Π·Π½ΡΡ ΡΠ΅ΡΠΌΠΈΠ½Π° Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ-ΠΆΠ΅: minimize, close ΠΈ iconic. ΠΡΠΈ ΡΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΡ CloseWindow () ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΡΡΠ΅ΠΉ ΡΠ΅ΡΠΌΠΈΠ½ close ΡΠ°ΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ; Π² ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ close ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΠΊΡΡΡΠΈΠ΅ (ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅) ΠΎΠΊΠ½Π°. ΠΠ΄Π΅ΡΡ ΠΆΠ΅ Π½Π°Π΄ΠΎ, ΡΡΡΠΎ ΡΠ΅ΡΠΌΠΈΠ½ open, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΎΠΊΠ½Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π΅Π³ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈΠ»ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ².
Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΌ, ΡΠΎ Π΅ΡΡΡ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ (ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ) Π΅Π³ΠΎ ΡΠ°ΠΌΠΊΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ ΠΎΠΊΠ½ΠΎ ΠΏΠΎ ΡΠΊΡΠ°Π½Ρ. ΠΠΎΠ³Π΄Π° ΠΎΠΊΠ½ΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, ΡΠΎ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΡΠ°Π·ΠΌΠ΅ΡΡ. ΠΡΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ Π½Π΅Π»ΡΠ·Ρ ΠΏΡΡΠ°ΡΡ Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ. ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΠΆΠ΅ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΊΠ½Π° Π² ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΠ°Π·ΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΊΠ½ΠΎ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΎΠΊΠ½Π°.
ΠΠ»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΈΠ· ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ OpenIcon (hWnd); ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ ΠΈΠ· ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎΠ³ΠΎ, ΡΠ°ΠΊ ΠΈ ΠΈΠ· ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ShowWindow () Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ:
ShowWindow (hWnd, SHOW_OPENWINDOW);
ShowWindow (hWnd, SW_SHOWNORMAL);
ShowWindow (hWnd, SW_RESTORE);
ShowWindow (hWnd, SW_SHOWNOACTIVATE);
Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ (SDK Help) ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ SW_RESTORE ΠΈ SW_SHOWNORMAL ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Ρ, Π½ΠΎ ΡΡΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΡΠ°ΠΊ — SW_RESTORE Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, Π° Π½Π΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ΅. Π’ΠΎ Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΠΡ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΎΠΊΠ½ΠΎ ΠΈΠ· ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ, ΡΠΎ SW_RESTORE Π²Π΅ΡΠ½Π΅Ρ ΠΠ°Ρ ΠΊ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΎΠΊΠ½Ρ, Π° SW_SHOWNORMAL — ΠΊ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΌΡ. SW_SHOWNORMAL ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌ SHOW_OPENWINDOW.
ΠΡΠ»ΠΈ ΠΎΠΊΠ½ΠΎ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΈΠ»ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ ΠΈΠ· ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΡΠΎ ΠΠ°ΡΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_QUERYOPEN — ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Ρ ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΈΠ»ΠΈ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΡΠ»ΠΈ ΠΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΠ΅ TRUE, ΡΠΎ ΠΎΠΊΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΠΊΡΡΡΠΎ, Π° Π΅ΡΠ»ΠΈ ΠΡ Π²Π΅ΡΠ½Π΅ΡΠ΅ FALSE, ΡΠΎ ΠΎΠΊΠ½ΠΎ ΠΎΡΡΠ°Π½Π΅ΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ 7. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°Π΄ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°ΠΌΠΈ Windows, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ, Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π΅ ΠΎΠΏΠΈΡΠ°Π½Ρ. Π Π΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ Ρ Π΅Π½Π΄Π»Π°Ρ ΠΊΠΎΠΏΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (HINSTANCE), ΠΌΠΎΠ΄ΡΠ»Ρ (HMODULE) ΠΈ Π·Π°Π΄Π°ΡΠΈ (HTASK). ΠΡΠ΅ ΡΡΠΈ Ρ Π΅Π½Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΠΏΡΠΈΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΏΠΎΡΡΠ½ΡΠ΅ΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠΈ Ρ Π΅Π½Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ:
HTASK ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π·Π°Π΄Π°ΡΡ.
Π Windows 3. x ΠΏΠΎΠ΄ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ Π·Π°ΠΏΡΡΠ΅Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ°, ΡΠ΅ΠΊΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠ°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΠ΅ΠΊ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, PDB (ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠ° Π·Π°Π΄Π°ΡΠΈ (PSP) Π² ΡΡΠ΅Π΄Π΅ DOS) ΠΈ ΠΏΡ. Π₯Π΅Π½Π΄Π» Π·Π°Π΄Π°ΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
HTASK GetCurrentTask (void);
Π Win32 Ρ Π΅Π½Π΄Π» Π·Π°Π΄Π°ΡΠΈ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ, Π° Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ Π½Π°Π΄ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Ρ Π΅Π½Π΄Π»Π°ΠΌΠΈ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ ΠΏΠΎΡΠΎΠΊΠ°. ΠΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ:
HANDLE GetCurrentProcess (void);
HANDLE OpenProcess (fdwAccess, fInherit, dwIDProccess);
DWORD GetCurrentProcessId (void);
HANDLE GetCurrentThread (void);
DWORD GetCurrentThreadId (void);
Π€ΡΠ½ΠΊΡΠΈΠΈ GetCurrentProcess ΠΈ GetCurrentThread Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ ΠΏΡΠ΅Π²Π΄ΠΎΠ΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° (ΠΏΠΎΡΠΎΠΊΠ°). ΠΡΠ΅Π²Π΄ΠΎΠ΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ — ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ Π²Π΅Π»ΠΈΡΠΈΠ½Π°, ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠ°Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄Π΅ΡΠΊΡΠΈΡΠΎΡΠ° ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° (ΠΏΠΎΡΠΎΠΊΠ°). Π’ΠΎ Π΅ΡΡΡ ΡΡΠ° Π²Π΅Π»ΠΈΡΠΈΠ½Π°, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠ°Ρ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° (ΠΏΠΎΡΠΎΠΊΠ°), Π±ΡΠ΄Π΅Ρ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π΅Π³ΠΎ, Π° Π½Π΅ Π΄Π°Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ «Π½Π°ΡΡΠΎΡΡΠ΅Π³ΠΎ» Ρ Π΅Π½Π΄Π»Π° Π½Π°Π΄ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ:
BOOL DuplicateHandle (
hSourceProcess, hSourceHandle, hTargetProcess, lphTargetHandle,
fdwAccess, fInherit, fdwOptions
);
HINSTANCE ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΊΠΎΠΏΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π² Windows 3. x ΡΡΠΎΡ Ρ Π΅Π½Π΄Π» ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ΅ΠΊ ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΊΡΡΡ. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ , ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΊΠΎΠΏΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ Π΅Π³ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΊΠΎΠΏΠΈΡΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π’Π°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ GetInstanceData ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ, Π² ΡΠΎ-ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ.
int GetInstanceData (hInstance, pByte, cbData);
Π ΡΡΠ½ΠΊΡΠΈΡ WinMain ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Ρ Π΅Π½Π΄Π» ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΠΊ ΠΈ Ρ Π΅Π½Π΄Π» ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π΄Π²ΡΡ ΠΊΠΎΠΏΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ, ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ Π·Π°ΠΏΡΡΠΊ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΏΠΈΠΉ, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅, ΠΈΠ»ΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π Win32 Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (Ρ.Π΅. ΠΏΡΠΎΡΠ΅ΡΡΠ°) Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π² 4G Π² Π΅Π΄ΠΈΠ½ΠΎΠΌ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ΅. ΠΠΎΡΡΠΎΠΌΡ Π΄Π°Π½Π½ΡΠΉ Ρ Π΅Π½Π΄Π» ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π½Π΅ ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ (ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π²Π΅ΡΡ 4G ΡΠ΅Π³ΠΌΠ΅Π½Ρ), Π° Π°Π΄ΡΠ΅Ρ Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ» Π·Π°Π³ΡΡΠΆΠ΅Π½ Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ. Π Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠΎΡ Ρ Π΅Π½Π΄Π» Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΏΠΈΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΊΠΎΠΏΠΈΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Win32 hPrevInstance Π²ΡΠ΅Π³Π΄Π° ΡΠ°Π²Π΅Π½ NULL, Π° Ρ Π΅Π½Π΄Π» ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ. ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΏΠΈΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΈΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ:
HWND FindWindow (lpszClassName, lpszWindowTitle);
Π₯Π΅Π½Π΄Π» ΠΎΠΊΠ½Π° Π² Win32 ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π² Π»ΡΠ±ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΠ»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ (ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ) ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π² Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ. ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_COPYDATA. ΠΠΎΠ³Π΄Π° ΠΡ ΠΏΠΎΡΡΠ»Π°Π΅ΡΠ΅ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Ρ, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌΡ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΏΠΈΡΡΡΡΡΡ Π² Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΎΡΠΈΡΠ°Π½Ρ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ ΠΎΠΊΠ½Π°-ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ. ΠΡΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΈ Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ 16-ΡΠΈ ΠΈ 32-Ρ Π±ΠΈΡΠΎΠ²ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½ΠΎΠΌΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_COPYDATA ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ COPYDATASTRUCT Π΄Π»Ρ 16-ΡΠΈ Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ — ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΠΉΠ» windows. h Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ:
#define WM_COPYDATA 0×004A
typedef struct tagCOPYDATASTRUCT {
DWORD dwData;
DWORD cbData;
LPVOID lpData;
} COPYDATASTRUCT, FAR* PCOPYDATASTRUCT;
HMODULE ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ.
Π Windows 3. x ΠΏΠΎΠ΄ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΎΡΠ΅ΠΊΠ° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ. ΠΠ»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π²ΡΠ΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠ°Ρ . Π₯Π΅Π½Π΄Π» ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΡΡΠΎΡ ΡΠ΅Π³ΠΌΠ΅Π½Ρ. ΠΠ»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ΅ΠΌΠΈ ΠΊΠΎΠΏΠΈΡΠΌΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Ρ Π΅Π½Π΄Π»Π° ΠΌΠΎΠ΄ΡΠ»Ρ ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ:
HMODULE GetModuleHandle (lpszFileName);
int GetModuleFileName (hInstance, lpsBuffer, cbMaxSize);
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π², ΡΡΠ½ΠΊΡΠΈΠΈ Windows API, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Ρ Ρ Π΅Π½Π΄Π»ΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠΌ Ρ Π΅Π½Π΄Π»Π° ΠΊΠΎΠΏΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΠΊ ΡΡΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π·Π½ΠΎΠ±ΠΎΠΉ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ .
Π Win32 Ρ Π΅Π½Π΄Π» ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΠΎΠΌ Ρ Π΅Π½Π΄Π»Π° ΠΊΠΎΠΏΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΠΎΠ±Π° ΡΠ΅ΡΠΌΠΈΠ½Π°, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠΎΡΠ΅Π²Π°Π»ΠΈ ΠΈΠ· 16-ΡΠΈ Π±ΠΈΡΠΎΠ²ΡΡ Windows, Ρ ΠΎΡΡ ΠΎΠ½ΠΈ ΡΠΎΠΆΠ΄Π΅ΡΡΠ²Π΅Π½Π½Ρ.
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠΎΡΡΠ»ΠΊΠ° ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
Π Π°Π½Π΅Π΅, Π½Π° ΠΏΠ΅ΡΠ²ΡΡ Π»Π΅ΠΊΡΠΈΡΡ , ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ «ΠΏΠΎΡΡΠ»ΠΊΠΎΠΉ» ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ (post). ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π²ΠΈΡΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ·ΠΆΠ΅ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΈΠ· Π½Π΅Π΅. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ΄ΠΎΠ±Π΅Π½, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΈΠ»ΠΈ Π΄ΠΎΠΆΠ΄Π°ΡΡΡΡ Π΅Π³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ. Π’ΠΎΡΠ½Π΅Π΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ, Π½ΠΎ ΠΎΡΠ΅Π½Ρ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ.
ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΈΡ Π·Π°Π΄Π°Ρ Π²Π²ΠΎΠ΄ΠΈΡΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ ΠΈ Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎ ΡΡΡΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ Π΅ΠΉ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΡΠΎ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ; ΡΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅Π»ΡΠ·Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_QUIT — ΠΎΠ½ΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΎΠΉΡΠΈ ΡΠ΅ΡΠ΅Π· ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΈΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ (ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ) Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π² ΡΠΈΠΊΠ»Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΈΡ ΡΠΎΠΆΠ΅ Π½Π°Π΄ΠΎ ΠΏΠΎΡΡΠ»Π°ΡΡ, Π° Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈ Ρ. Π΄.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Win32 API — ΡΠ°ΠΌ ΠΏΡΠΈΠ½ΡΡΠΎ, ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΎΠΊΠ½Ρ, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΡΠ΅ΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠΎ ΠΎΠΊΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π». ΠΡΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ (Π½Π΅ ΠΏΠΎΡΡΠ»ΠΊΠΈ) ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠΊΠ½Ρ, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌΡ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ — ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠΈΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Ρ ΡΠ»Π°Π³ΠΎΠΌ `ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅' ΠΈ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π΄ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΠ°. ΠΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ, Π·Π°ΠΊΠΎΠ½ΡΠΈΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΠΈΠ· ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΏΠ΅ΡΠ²ΡΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π΅Ρ ΠΈΡ ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΡΠ»Π°Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π²ΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΠ±Π΅ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ², Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠΎΠΊ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΌΡ ΠΏΠΎΡΠΎΠΊΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ — ΡΠΎΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ, Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ.
ΠΠ»Ρ ΠΏΠΎΡΡΠ»ΠΊΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
BOOL PostMessage (hWnd, wMsg, wPar, lPar);
ΠΠΎΡΡΠ»Π°Π΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Ρ (ΡΠ΅ΡΠ΅Π· ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ).
LONG SendMessage (hWnd, wMsg, wPar, lPar);
ΠΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Ρ (ΠΏΡΡΠΌΠΎΠΉ Π²ΡΠ·ΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ) ΠΈ Π·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π² Π²ΡΠ·Π²Π°Π²ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΏΠΎΡΡΡΠΏΠ°Π΅Ρ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΠΊΡΠΎΠΌΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Win32 API). Π’ΠΎ Π΅ΡΡΡ ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅Ρ ΠΈΠ»ΠΈ ΠΈΠ½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π΄ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΠΊΠ»Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
BOOL PostAppMessage (hTask, wMsg, wPar, lPar); // Windows 3. x
BOOL PostAppMessage (dwProccessId, wMsg, wPar, lPar); // Win32 API
BOOL PostThreadMessage (dwThreadId, wMsg, wPar, lPar); // Win32 API
ΠΠΎΡΡΠ»Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅. ΠΡΠΈ ΡΡΠΎΠΌ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΈΠΌΠ΅ΡΡΠ΅Π΅ Π½ΡΠ»Π΅Π²ΠΎΠΉ Ρ Π΅Π½Π΄Π» ΠΎΠΊΠ½Π° — ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·ΡΠ΅ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠΌΡ ΠΎΠΊΠ½Ρ.
Π₯Π΅Π½Π΄Π» Π·Π°Π΄Π°ΡΠΈ hTask Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Ρ Π΅Π½Π΄Π»ΠΎΠΌ ΠΊΠΎΠΏΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ GetCurrentTask Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Ρ Π΅Π½Π΄Π»Π° Π·Π°Π΄Π°ΡΠΈ Π² ΡΡΠ΅Π΄Π΅ Windows 3. x, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ GetCurrentThreadId ΠΈ GetCurrentProcessId Π² Win32 API.
Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ Ρ Π΅Π½Π΄Π»Π°.
BOOL PostQuitMessage (wPar);
ΠΠΎΡΡΠ»Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_QUIT Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ wPar Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_QUIT ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
Π’ΠΈΠΏΠΈΡΠ½ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΎΠΊΠ½ΠΎΠΌ.
Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ Π·Π°ΠΉΠΌΠ΅ΠΌΡΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½ΠΎΠΌ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΏΠΈΡΠ½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΎΠΊΠ½ΠΎΠΌ. Π’Π°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΎΠΊΠ½ΠΎΠΌ ΠΏΡΠΈ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ. ΠΡΠΈ ΡΡΠΎΠΌ Π½Π°Π΄ΠΎ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΊΠ°ΠΊ Π±Ρ «ΡΠΊΠ΅Π»Π΅ΡΠΎΠΌ», Π° ΡΠ΅Π°Π»ΡΠ½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π±ΠΎΠ»ΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΎΡΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ. ΠΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΎΠΊΠ½Π°, Π΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. (Π’Π°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΡ «ΡΠΊΡΡΡΡΠΌΠΈ» ΠΎΠΊΠ½Π°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ Π² ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ).
Π ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΡ Π½Π°ΠΌΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π½Π΅ ΠΏΡΠΎΡ ΠΎΠ΄ΡΡ ΡΠ΅ΡΠ΅Π· ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ. ΠΠΌΠ΅Π½Π½ΠΎ Π»ΠΎΠ³ΠΈΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΡΡΠΈΡ ΡΠ΅ΠΏΠΎΡΠΊΠ°Ρ ΡΠ²Π»ΡΡΡΡΡ ΠΊΠ°ΠΊ Π±Ρ «Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ» — ΡΠΎ Π΅ΡΡΡ ΠΎΠ½ΠΈ ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡΡΡ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΈΠ½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠΊΠ½Π°
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠΊΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ CreateWindow (). ΠΠΎ Π²ΡΠ΅ΠΌΡ Π΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΊΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ:
WM_GETMINMAXINFO 0 &MINMAXINFO
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°Ρ ΠΎΠΊΠ½Π°; Π΄Π°Π½Π½ΡΠ΅ Π² ΡΡΡΡΠΊΡΡΡΠ΅ MINMAXINFO Π·Π°Π΄Π°ΡΡΡΡ ΠΠ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΠ°ΠΊ ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ, Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. (ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ GetWindowPlacement ()).
WM_NCCREATE 0 &CREATESTRUCT
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π½Π΅ΡΠ½Π΅ΠΉ (non-client) ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ°, ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ DefWindowProc () ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΈ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π°. ΠΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ 0 ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π²ΠΎΠ·Π½ΠΈΠΊΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΈ ΠΎΠΊΠ½ΠΎ Π½Π΅ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ; Π½Π΅ 0 ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΡΠΏΠ΅ΡΠ½ΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ.
WM_NCCALCSIZE flag &NCCALCSIZE_PARAMS
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ (client) ΡΠ°ΡΡΠΈ ΠΎΠΊΠ½Π°; ΠΊΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡ ΠΎΠΊΠ½Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Π° Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΎΠΊΠ½Π° ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ².
WM_CREATE 0 &CREATESTRUCT
ΠΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΠ°ΠΌΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ (client) ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°. ΠΡΠΈ ΡΡΠΎΠΌ ΠΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΎΠΊΠΎΠ½ ΠΈ ΠΏΡ. ΠΠ°ΠΊ ΠΈ WM_NCCREATE ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΅Π½ΠΈΠ΅ ΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½ΡΠΆΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ «ΡΡΠΏΠ΅Ρ » ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ 0, Π° ΠΎΡΠΈΠ±ΠΊΠ°: -1 (!).
ΠΠΊΡΠΈΠ²Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΡ Π³Π»Π°Π²Π½ΡΠΌ ΠΎΠΊΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π Π°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΌΡ ΠΈΡ Π±ΡΠ΄Π΅ΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΌΡ Π²ΡΠ΄Π΅Π»ΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² Π΄Π²Π΅ ΠΎΠ±ΡΡΠ½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°ΡΡ «Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠ΅ΠΉ» ΠΈ «Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠ΅ΠΉ» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΈ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ (ΡΠΎΠΊΡΡΠ° Π²Π²ΠΎΠ΄Π°) ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΎΠΌΡ. ΠΠ° Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠΈ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠ°Π·Ρ Π·Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΊΡΠΈΠ²Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
WM_ACTIVATEAPP TRUE hTask
ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΡΡΠ΅Π΅ ΠΎΠ± Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠΊΠΎΠ½ «Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ» (Ρ.Π΅. ΠΎΠΊΠΎΠ½ ΡΡΠΈΠ»Ρ WS_OVERLAPPED ΠΈΠ»ΠΈ WS_POPUP), ΡΠΎ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠ»Π°Π΄ΡΠ΅Π΅ ΡΠ»ΠΎΠ²ΠΎ lParam ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Ρ Π΅Π½Π΄Π» ΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° Π°ΠΊΡΠΈΠ²Π½Π° Π΄ΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°.
WM_NCACTIVATE TRUE minimized & hWnd
Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ (ΠΈΠ»ΠΈ Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ, ΡΠΌΠΎΡΡΡ ΠΏΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ wParam) Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅Ρ Π²Π½Π΅ΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΎΠΊΠ½Π° Π΄Π»Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ²Π΅ΡΠΎΠΌ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ/Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ. ΠΡΠΈ ΡΡΠΎΠΌ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΈΠ»ΠΈ Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΎΠΊΠ½Π° Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ Π² ΡΡΡΡΠΊΡΡΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΠΊΠ½Π°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΌΠΈ ΠΏΠΎΡΡΠ»Π°ΡΡ WM_NCACTIVATE Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΎΠΊΠ½Π°. Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ `lParam' Π½Π΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ 0, ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ WM_ACTIVATE (ΡΠΌ. Π½ΠΈΠΆΠ΅). ΠΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π³Π»Π°Π²Π½ΡΠΌ ΠΎΠΊΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΎΠ± Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΠΎΠΊΠ½Π°, Π° Π½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ»ΠΈ ΠΎΠΊΠ½ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΡΡΡ, ΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΡΠ±ΡΠΌ, Π° Π΅ΡΠ»ΠΈ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΡΡΡ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0 Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ Π΅Π³ΠΎ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΡΡ Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ. ΠΠΎΡΠ΅ΡΠ½ΠΈΠ΅ Π½Π΅ MDI ΠΎΠΊΠ½Π° (ΡΡΠΈΠ»Ρ WS_CHILD) ΡΠ°ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ.
WM_GETTEXT bufsize &buffer
ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π±ΡΡΠ΅Ρ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠ΅ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π° — WM_GETTEXT «Π²Π»ΠΎΠΆΠ΅Π½ΠΎ» Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ WM_NCACTIVATE. ΠΡΠ»ΠΈ ΠΎΠΊΠ½ΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° (caption bar), ΡΠΎ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ.
WM_ACTIVATE 1 ΠΈΠ»ΠΈ 2 minimized & hWnd
Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°. ΠΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π³Π»Π°Π²Π½ΡΠΌ ΠΎΠΊΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΎΠ± Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΠΎΠΊΠ½Π°, Π° Π½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΎΠΊΠ½Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²) ΠΌΠΎΠ³ΡΡ ΡΡΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ wParam ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠΊΠ½ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ (2) ΠΈΠ»ΠΈ ΠΈΠ½ΡΠΌ ΠΏΡΡΠ΅ΠΌ (0). ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ lParam ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΡΠ°ΡΡΠ΅ΠΌ ΡΠ»ΠΎΠ²Π΅ Π½Π΅ 0, Π΅ΡΠ»ΠΈ ΠΎΠΊΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ, Π° Π² ΠΌΠ»Π°Π΄ΡΠ΅ΠΌ ΡΠ»ΠΎΠ²Π΅ — Ρ Π΅Π½Π΄Π» ΠΎΠΊΠ½Π° Π±ΡΠ²ΡΠ΅Π³ΠΎ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ.
<οΏ½ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΊΡΡΠ° Π²Π²ΠΎΠ΄Π°>
ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ/ΠΏΠΎΡΠ΅ΡΠΈ ΡΠΎΠΊΡΡΠ° Π²Π²ΠΎΠ΄Π° ΠΎΠΊΠ½ΠΎΠΌ ΡΠΌ. Π½ΠΈΠΆΠ΅.
Π ΡΡΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ Π΄Π²Π΅ ΡΠ°Π·Ρ:
1) Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (Π΅ΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ)
2) Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΠΎΠΊΠ½Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·:
Β· Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ
Β· Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΡΡ ΡΠ΅ΠΏΠΎΡΠΊΠ° ΡΠ°ΡΡΠΎ ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ SetWindowPos (…); ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ°ΠΊΠ°Ρ ΡΠ΅ΠΏΠΎΡΠΊΠ° Π²Ρ ΠΎΠ΄ΠΈΡ Π² Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ Π³ΡΡΠΏΠΏΡ, Π½Π°ΡΠΈΠ½Π°ΡΡΡΡΡΡ Ρ WM_WINDOWPOSCHAINGING ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΡΡΡΡ WM_WINDOWPOSCHANGED. ΠΡΠΈ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΠΎΠΊΠ½Π° «ΡΠ΅Π»ΡΠΊΠΎΠΌ ΠΌΡΡΠΊΠΎΠΉ» ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΎΠΉ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ WM_MOUSEACTIVATE ΠΈ ΠΏΠ°ΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ WM_WINDOWPOSCHAINGING, WM_WINDOWPOSCHANGED. (Π‘ΠΌ. Π½ΠΈΠΆΠ΅)
ΠΠ΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡΠΈ Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ Π΄Π²Π΅ ΡΠ°Π·Ρ — Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΠΎΠΊΠ½Π° ΠΈ Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π²ΠΎΠΏΡΠ΅ΠΊΠΈ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Windows Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΠΎΠΊΠ½Π° Π² ΡΠΎΠΌ-ΠΆΠ΅ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΠΊΠ°ΠΊ ΠΈ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ — ΡΠ½Π°ΡΠ°Π»Π° Π²Π½Π΅ΡΠ½ΡΡ, Π° Π·Π°ΡΠ΅ΠΌ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΠΈ.
WM_NCACTIVATE FALSE minimized & hWnd
Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°, ΠΎ ΡΠ΅ΠΌ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ wParam == FALSE. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ lParam ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΠΌΠ»Π°Π΄ΡΠ΅ΠΌ ΡΠ»ΠΎΠ²Π΅ Ρ Π΅Π½Π΄Π» ΠΎΠΊΠ½Π°, ΡΡΠ°Π½ΠΎΠ²ΡΡΠ΅Π³ΠΎΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ, ΡΡΠ°ΡΡΠ΅Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΠ°ΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π°. (ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ — ΡΠΌ. Π²ΡΡΠ΅ «Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ»)
WM_GETTEXT bufsize &buffer
ΠΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠ΅ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°.
WM_ACTIVATE FALSE minimized & hWnd
Π·Π°ΡΠ΅ΠΌ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΎΠΊΠ½Π° (wParam == FALSE). ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ lParam ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΠΌΠ»Π°Π΄ΡΠ΅ΠΌ ΡΠ»ΠΎΠ²Π΅ Ρ Π΅Π½Π΄Π» ΠΎΠΊΠ½Π°, ΡΡΠ°Π½ΠΎΠ²ΡΡΠ΅Π³ΠΎΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ, ΡΡΠ°ΡΡΠ΅Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΠ°ΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π°.
WM_ACTIVATEAPP FALSE hTask
ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΡΡΡ Π²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ hTask ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ.
<οΏ½ΠΏΠΎΡΠ΅ΡΡ ΡΠΎΠΊΡΡΠ° Π²Π²ΠΎΠ΄Π° ΠΎΠΊΠ½ΠΎΠΌ>
ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ/ΠΏΠΎΡΠ΅ΡΠΈ ΡΠΎΠΊΡΡΠ° Π²Π²ΠΎΠ΄Π° ΠΎΠΊΠ½ΠΎΠΌ ΡΠΌ. Π½ΠΈΠΆΠ΅.
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΡΠ΅ΡΡ ΡΠΎΠΊΡΡΠ° Π²Π²ΠΎΠ΄Π° ΠΎΠΊΠ½ΠΎΠΌ
Π¦Π΅ΠΏΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΠΈ Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠΈΠΌΠΈ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π° Π½ΡΠΆΠ½ΠΎΠΌΡ ΠΎΠΊΠ½Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ½ΡΡΠΈΠ΅ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π° ΡΡΠ΅Π±ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡ. Π Π°Π½Π΅Π΅ (Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΉ Π»Π΅ΠΊΡΠΈΠΈ) ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠΊΠ½ΠΎ, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡΠ΅Π΅ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΎΠΉ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ. Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ Π²Π²Π΅Π΄Π΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΠΎΠΊΠ½Π°, ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π° — ΡΠΎ Π΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. Π Π°Π·Π»ΠΈΡΠΈΠ΅ Π΄Π²ΡΡ ΠΏΠΎΠ½ΡΡΠΈΠΉ — Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΈ ΠΎΠΊΠ½Π°, ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π° ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅. ΠΠΎΠΊΠ° ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΎΠΊΠ½ΠΎ ΠΈΠΌΠ΅ΡΡΠ΅Π΅ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π° Π²ΡΠ΅Π³Π΄Π° Π°ΠΊΡΠΈΠ²Π½ΠΎ (Π½ΠΎ Π½Π΅ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ).
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΠΎΠΊΠ½Π° Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠΎΠΊΡΡΠ° Π²Π²ΠΎΠ΄Π°, ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎ ΠΏΠΎΡΠ΅ΡΠ΅ ΡΠΎΠΊΡΡΠ° Π²Π²ΠΎΠ΄Π° (ΠΎΠΏΡΡΡ-ΡΠ°ΠΊΠΈ Π½Π΅ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅).
ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΊΡΡΠ° Π²Π²ΠΎΠ΄Π° ΠΎΠΊΠ½ΠΎΠΌ:
WM_SETFOCUS hWnd losing focus 0
ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π°, ΠΏΡΠΈΡΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ wParam ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Ρ Π΅Π½Π΄Π» ΠΎΠΊΠ½Π°, ΡΠ΅ΡΡΡΡΠ΅Π³ΠΎ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π° (ΠΈΠ»ΠΈ NULL).
ΠΏΠΎΡΠ΅ΡΡ ΡΠΎΠΊΡΡΠ° Π²Π²ΠΎΠ΄Π° ΠΎΠΊΠ½ΠΎΠΌ:
WM_KILLFOCUS hWnd received focus 0
ΡΠ΅ΡΡΠ΅ΠΌ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π°, ΠΏΡΠΈΡΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ wParam ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Ρ Π΅Π½Π΄Π» ΠΎΠΊΠ½Π°, ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ°ΡΡΠ΅Π³ΠΎ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π° (ΠΈΠ»ΠΈ NULL).
ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°
ΠΠ±ΡΡΠ½ΠΎ, ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ ShowWindow () Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π² Π½ΡΠΆΠ½ΠΎΠΌ Π½Π°ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ShowWindow ():
WM_SHOWWINDOW TRUE/FALSE 0
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ wParam ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ — ΠΏΠΎΠΊΠ°Π·Π°ΡΡ (TRUE) ΠΈΠ»ΠΈ «ΡΠΏΡΡΡΠ°ΡΡ» (FALSE) ΠΎΠΊΠ½ΠΎ. ΠΠ»Π°Π΄ΡΠ΅Π΅ ΡΠ»ΠΎΠ²ΠΎ lParam ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ 0, Π΅ΡΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π°Π½ΠΎ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ShowWindow ().
<οΏ½Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ>
ΠΡΠ»ΠΈ ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ShowWindow () Π΄Π»Ρ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΡΠ΅ΠΏΠΎΡΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΎΠΊΡΡΠ° Π²Π²ΠΎΠ΄Π°.
WM_NCPAINT 0 0
ΠΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΈ WM_NCACTIVATE Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π° (ΠΊΡΠΎΠΌΠ΅ Π½ΠΈΡ ΡΡΠΈΠΌ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ Π΅ΡΠ΅ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ WM_NCLBUTTONDOWN ΠΈ WM_SYSCOMMAND). Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ wParam ΠΈ lParam Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ. Π Borland Help ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ wParam ΡΠ²Π»ΡΠ΅ΡΡΡ Ρ Π΅Π½Π΄Π»ΠΎΠΌ ΡΠ΅Π³ΠΈΠΎΠ½Π°, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅Π³ΠΎ ΠΎΠ±Π»Π°ΡΡΡ Π³Π΄Π΅ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, Π° lParam Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ wParam ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ 0 (ΠΏΡΠΈ ΡΡΠΎΠΌ Π²Π½Π΅ΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ), ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Ρ Π΅Π½Π΄Π»ΠΎΠΌ ΡΠ΅Π³ΠΈΠΎΠ½Π°, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ 1 (ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ). ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ lParam ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ 0, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π² ΠΌΠ»Π°Π΄ΡΠ΅ΠΌ ΡΠ»ΠΎΠ²Π΅ Ρ Π΅Π½Π΄Π» ΠΎΠΊΠ½Π°, Π° Π² ΡΡΠ°ΡΡΠ΅ΠΌ Π΅ΡΠ΅ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π΄Π°Π½Π½ΡΠ΅.
WM_GETTEXT bufsize &buffer
ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ WM_NCACTIVATE ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ «Π²Π»ΠΎΠΆΠ΅Π½ΠΎ» Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ WM_NCPAINT.
WM_ERASEBKGND hDC 0
ΠΡΠΈΡΠ°Π΅ΡΡΡ ΡΠΎΠ½ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΈΡΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ Π² ΡΡΡΡΠΊΡΡΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΠΊΠ½Π°. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ wParam Π·Π°Π΄Π°Π΅Ρ Ρ Π΅Π½Π΄Π» ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°. ΠΡΠ»ΠΈ ΠΡ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΡΠ°ΠΌΠΈ Π·Π°ΠΊΡΠ°ΡΠΈΠ²Π°ΡΡ ΡΠΎΠ½ ΠΎΠΊΠ½Π°, ΡΠΎ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π° Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ GetClientRect (). ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° (ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎ ΡΡΠΈΠ»Ρ WS_VISIBLE) ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_ERASEBKGND Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π΄ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_SIZE, Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_WINDOWPOSCHANGING Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ ΠΎΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π΄ΠΎ WM_ERASEBKGND, Π½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½ΡΠ»Π΅Π²ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°.
WM_SIZE type height & width
ΠΠ°Π΄Π°Π΅ΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΊΠ½Π°, ΠΏΡΠΈΡΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ wParam ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΎ «ΡΠΈΠΏΠ΅» ΡΠ°Π·ΠΌΠ΅ΡΠ° — ΠΎΠΊΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΎ Π² Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ. ΠΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ ΠΎΠΊΠ½Ρ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ Π·Π°ΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΎΠΊΠ½ΠΎΠΌ, ΠΈΠ»ΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΡΠΌ, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΊΡΡΠ²Π°Π²ΡΠ΅Π΅ Π΅Π³ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΡΡΠ°Π»ΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠ»ΠΎΡΡ Π² ΠΈΠΊΠΎΠ½ΠΊΡ.
WM_MOVE 0 y & x
ΠΠ°Π΄Π°Π΅ΡΡΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° Π½Π° ΡΠΊΡΠ°Π½Π΅ (ΠΈΠ»ΠΈ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°-ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ).
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ², ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΎΠΊΠ½Π°
ΠΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ (Π² X, Y ΠΈΠ»ΠΈ Z Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ), ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΎΠΊΠ½Π° ΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΏΠΎΠΌΠΈΠΌΠΎ WM_SIZE ΠΈ WM_MOVE ΠΡ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_WINDOWPOSCHANGING ΠΈ WM_WINDOWPOSCHANGED. ΠΡΠΈ ΡΡΠΎΠΌ Π²ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ»ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ SetWindowPos (…) (ΠΈΠ»ΠΈ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΠΉ) Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅:
WM_WINDOWPOSCHANGING 0 &WINDOWPOS
cΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ lParam ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡΡΠΊΡΡΡΡ WINDOWPOS, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ. ΠΠ·ΠΌΠ΅Π½ΠΈΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΠΎΠ»Ρ ΡΡΡΡΠΊΡΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΎΠΊΠ½Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
<οΏ½ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΠΎΠΊΠ½Π° (ΠΈΠ»ΠΈ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ)>
Π΅ΡΠ»ΠΈ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΡΡΡ, ΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_WINDOWPOSCHANGED, Π·Π°Π²Π΅ΡΡΠ°ΡΡΠ΅Π΅ Π²ΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ, Π±Π΅Π· Π²ΡΠ΅Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΡ Π½Π°ΠΌΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
WM_GETMINMAXINFO 0 &MINMAXINFO
ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½ΠΎΠ²ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΎΠΊΠ½Π°
WM_NCCALCSIZE flag &NCCALCSIZE_PARAMS
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ
WM_NCPAINT 0 0
ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°
WM_ERASEBKGND hDC 0
ΠΎΡΠΈΡΡΠΊΠ° ΡΠΎΠ½Π° ΠΎΠΊΠ½Π°
WM_WINDOWPOSCHANGED 0 &WINDOWPOS
ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ lParam ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π½Π° ΡΡΡΡΠΊΡΡΡΡ WINDOWPOS, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°Ρ ΠΎΠΊΠ½Π°. Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_WINDOWPOSCHANGING … WM_WINDOWPOSCHANGED ΡΠ°ΡΡΠΎ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΈΠ½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π΅ΡΠ»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ. (Π§Π°ΡΡΠΎ ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΎΠΊΠ½ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΡΡΡ Π² ΠΎΡΠ²Π΅Ρ Π½Π° «ΡΠ΅Π»ΡΠΎΠΊ ΠΌΡΡΠΊΠΎΠΉ»).
WM_MOVE 0 y & x
WM_SIZE type height & width
ΠΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΡΡ ΠΎ Π½ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°Ρ ΠΎΠΊΠ½Π°. ΠΠ½ΠΈ ΠΏΠΎΡΡΠ»Π°ΡΡΡΡ ΠΏΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ DefWindowProc () ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_WINDOWPOSCHANGED. Π₯ΠΎΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΊΠΎΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ, ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°Ρ Π²ΠΌΠ΅ΡΡΠΎ WM_MOVE ΠΈ WM_SIZE ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_WINDOWPOSCHANGED ΠΈ Π½Π΅ Π²ΡΠ·ΡΠ²Π°Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ DefWindowProc (), Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΏΡΠΈΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠ΅Π½Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ — ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_SIZE ΠΈ WM_MOVE ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ MDI ΠΎΠΊΠ½Π°ΠΌΠΈ.
Π Π°ΡΡΠΌΠΎΡΡΠ΅Π½Π½Π°Ρ Π½Π°ΠΌΠΈ ΡΠ΅ΠΏΠΎΡΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ SetWindowPos (ΠΈΠ»ΠΈ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΠΉ) ΠΈ ΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΎΠΊΠ½Ρ, Π° Π½Π΅ ΠΏΠΎΡΡΠ»Π°ΡΡΡΡ.
WM_PAINT 0 0
ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΠΊΠ½ΠΎ (ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΡΠ°ΡΡΡ), ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΌΠ°ΡΠΊΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π½Π΅Π²Π΅ΡΠ½ΠΎΠ΅, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠ΅ ΠΎΠΊΠ½Π°. Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_PAINT ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΈΠ· ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ², ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΎΠΊΠ½Π°.
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°
ΠΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° ShowWindow () Π² WinMain () ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° UpdateWindow (). ΠΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π΅Π²Π΅ΡΠ½ΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ² ΠΈ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π΅ΡΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_PAINT (Π½Π΅ ΡΡΠ°Π²ΠΈΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π° Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΡΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ).
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° UpdateWindow ():
WM_PAINT 0 0
ΠΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΎΠΊΠ½Π°. ΠΡΠ»ΠΈ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Ρ Π΅Π½Π΄Π»Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ BeginPaint (), ΡΠΎ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_ERASEBKGND Π΄Π»Ρ ΠΎΡΠΈΡΡΠΊΠΈ ΡΠΎΠ½Π° Π² Π½Π΅Π²Π΅ΡΠ½ΠΎΠΌ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ΅ (Π΅ΡΠ»ΠΈ ΠΏΡΠΈ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ ΡΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½).
WM_ERASEBKGND hDC 0
ΠΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Ρ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΊΡΠ°ΡΠΈΡΡ ΡΠΎΠ½ ΠΎΠΊΠ½Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΉ Π½Π°ΠΌ Ρ Π΅Π½Π΄Π» ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΈΠ»ΠΈ Π²ΡΠ·Π²Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Π£Π½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°
ΠΠ»Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠΊΠ½Π° Π½Π°Π΄ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ DestroyWindow (), ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ Π·Π°ΠΊΡΡΡΠΈΡ ΠΎΠΊΠ½Π°. ΠΡΠΈΡΠ΅ΠΌ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ»Π°ΡΡΡΡ:
<οΏ½ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ (Π΅ΡΠ»ΠΈ Π½Π°Π΄ΠΎ)>
ΠΠ½ΠΎΠ³Π΄Π° Π±ΡΠ²Π°Π΅Ρ ΡΠ°ΠΊ, ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΠΎΠΊΠ½Π° Π½Π΅ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°;
WM_DESTROY 0 0
Π£Π½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°.
WM_NCDESTROY 0 0
Π£Π½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°.
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_DESTROY ΠΈ WM_NCDESTROY ΡΠ²Π»ΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΠΌΠΈ ΠΎΠΊΠ½ΠΎΠΌ. ΠΠΎΡΠ»Π΅ WM_NCDESTROY ΠΎΠΊΠ½ΠΎ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΌΠ΅Π»ΠΎ ΡΠ°Π·ΡΡΡΠ°ΡΡ Π²ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΎΠΊΠ½Π° ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ .
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_DESTROY ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π»Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΠ²ΡΠ·ΡΠ½Π½ΡΡ Ρ Π΄Π°Π½Π½ΡΠΌ ΠΎΠΊΠ½ΠΎΠΌ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΎΠΊΠΎΠ½.
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ WM_DESTROY ΠΈ WM_NCDESTROY Π½Π΅Π»ΡΠ·Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΎΠΊΠΎΠ½. (Π ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π½Π΅Π»ΡΠ·Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ MessageBox, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ Π΅ΠΉ Ρ Π΅Π½Π΄Π» ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ) — ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅ΠΌΠΎΠΌΡ ΠΎΠΊΠ½Ρ, ΠΈ, Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅, ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ «General protection fault…»
ΠΡΠ»ΠΈ ΠΡ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΊΡΡΡΠΈΠ΅ΠΌ ΠΎΠΊΠ½Π°, ΡΠΎ ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_CLOSE. Π€ΡΠ½ΠΊΡΠΈΡ DefWindowProc, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Ρ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ DestroyWindow. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ Π²ΡΡΠ°Π²ΠΈΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_CLOSE, ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ DestroyWindow ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΎΡΠ²Π΅ΡΠ΅ Π½Π° Π·Π°ΠΏΡΠΎΡ. Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_CLOSE Π»ΡΡΡΠ΅ ΠΏΠΎΡΡΠ»Π°ΡΡ, Π° Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ.
Π‘ΠΎΠ±ΡΡΠΈΠ΅ WM_CLOSE ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°ΠΌΠΎΠΉ ΡΡΠ΅Π΄ΠΎΠΉ, ΠΏΡΠΈΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠ΅ΠΉ ΠΊ Π·Π°ΠΊΡΡΡΠΈΡ ΠΎΠΊΠ½Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠΉ: Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ — Π²ΡΠ±ΠΎΡ ΠΏΡΠ½ΠΊΡΠ° `Close' — Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅Π½Ρ — ΠΏΠΎΡΡΠ»ΠΊΠ° WM_SYSCOMMAND Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ SC_CLOSE — ΠΏΠΎΡΡΠ»ΠΊΠ° WM_CLOSE — ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°.
ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Windows
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΅ΡΠ΅ Π΄Π²Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π·Π°ΠΊΡΡΡΠΈΡ ΠΎΠΊΠ½Π°:
WM_QUERYENDSESSION 0 0
ΠΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Windows Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎ. ΠΠ½ΠΎ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΠ΅Π½ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ. ΠΡΠ»ΠΈ Π²ΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ TRUE, ΡΠΎ Windows Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ.
ΠΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Ρ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π΅ΡΠ½ΡΡΡ TRUE, Π΅ΡΠ»ΠΈ ΠΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΎ, ΠΈΠ»ΠΈ FALSE Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅. ΠΡΠΈ ΡΡΠΎΠΌ Windows ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ.
WM_ENDSESSION TRUE/FALSE 0
ΠΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ ΠΎΡΠ²Π΅ΡΠΈΠ»ΠΎ TRUE Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_QUERYENDSESSION. Π€Π»Π°Π³ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ `wPar' ΡΠ°Π²Π½ΡΠΉ TRUE ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ° Windows ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡ ΠΎΠΊΠ½ΠΎ ΠΈ ΠΏΠΎΡΡΠ»Π°ΡΡ ΡΠ΅Π±Π΅ WM_QUIT Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ, Π΅ΡΠ»ΠΈ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ° Π²ΡΠ΅Π³ΠΎ Windows.
ΠΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°. Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ
Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅ΠΉ. ΠΠΎΠ³Π΄Π° ΠΌΡ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° Π»ΡΠ±ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ, Π½Π°ΡΠ΅ (ΡΠΎΡΠ½Π΅Π΅ — Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅) ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
WM_KEYDOWN VkCode dwKeyData
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ wPar ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π½Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ. Π Windows ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ dwKeyData ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠΎΠ±ΡΡΠΈΠΈ.
ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΊΠ»Π°Π²ΠΈΡ ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΠΉ Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ Π±ΡΠΊΠ²Π΅, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π° Π½ΠΈΡ Π½Π°Π½Π΅ΡΠ΅Π½Π° (Π΄Π»Ρ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΊΠ»Π°Π²ΠΈΡΠΈ A ΡΠ°Π²Π΅Π½ ASCII ΠΊΠΎΠ΄Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π° `A'. ΠΠ»Ρ ΡΠ΅Ρ ΠΊΠ»Π°Π²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ Π±ΡΠΊΠ²Π°ΠΌ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π½ΠΎΠΌΠ΅ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ VK_F6 Π΄Π»Ρ ΠΊΠ»Π°Π²ΠΈΡΠΈ F6, VK_MENU Π΄Π»Ρ ΠΊΠ»Π°Π²ΠΈΡΠΈ Alt, VK_RETURN Π΄Π»Ρ ΠΊΠ»Π°Π²ΠΈΡΠΈ Enter.
ΠΡΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΡΠΏΠΈΡΠΎΠΊ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠ΄ΠΎΠ² (ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π² WINDOWS. H), ΡΠΎ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ°Π½Π½ΡΡ ΠΊΠ»Π°Π²ΠΈΡ:
VK_LBUTTON, VK_RBUTTON, VK_MBUTTON
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌ ΠΌΡΡΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½Π°ΡΠ΅, ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ WM_KEYDOWN ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΌΡΡΠΈ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ dwKeyData ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ:
WM_KEYUP VkCode dwKeyData
ΠΡΠΎΠΌΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_KEYDOWN Windows ΠΏΠΎΡΡΠ»Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_KEYUP ΠΏΡΠΈ ΠΎΡΠΏΡΡΠΊΠ°Π½ΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡΠΈ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_KEYDOWN.
ΠΠΎΠ³Π΄Π° ΠΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΠΈΠ· ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_KEYDOWN, ΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ½ΠΎ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ TranslateMessage (ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΡΠΈΠΊΠ»Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ). ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠΎΡΡΠ»Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_CHAR, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π½Π°ΠΆΠ°ΡΠΎΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈΠ»ΠΈ WM_DEADCHAR.
WM_CHAR nCharacter dwKeyData
Π‘ΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π½Π°ΠΆΠ°ΡΠ°Ρ ΠΊΠ»Π°Π²ΠΈΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π΄Π°Π½Π½ΠΎΠΌΡ (nCharacter) ΡΠΈΠΌΠ²ΠΎΠ»Ρ. ΠΡΠ»ΠΈ ΠΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, ΡΠΎ ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_CHAR Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ°, Π° Π½Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_KEYDOWN.
WM_DEADCHAR nDeadChar dwKeyData
ΠΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΉ Dead-Key. Dead-Key ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ Π°ΠΊΡΠ΅Π½ΡΠ½ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ. Π’Π°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΠΌΠ΅ΡΠΊΠ°Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Dead-Key, ΡΠΊΠ°ΠΆΠ΅ΠΌ `. ΠΡΠ»ΠΈ Π½Π°ΠΆΠ°ΡΡ ΡΡΡ ΠΊΠ»Π°Π²ΠΈΡΡ, Π°, Π·Π°ΡΠ΅ΠΌ, Π±ΡΠΊΠ²Ρ A, ΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ A Ρ ΡΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΡΠΈ ΡΡΠΎΠΌ Π½Π°ΠΆΠ°ΡΡΠΉ ` ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ (ΡΡΠΎ Dead-Key), Π° ΡΠ»ΡΠΆΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ Π΄Π»Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ WM_KEYDOWN Π΄Π»Ρ ΠΊΠ»Π°Π²ΠΈΡ ` ΠΈ A Π±ΡΠ΄ΡΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_DEADCHAR Π΄Π»Ρ ` ΠΈ WM_CHAR Π΄Π»Ρ A Ρ ΡΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ.
ΠΠΊΠ½ΠΎ, ΠΈΠΌΠ΅ΡΡΠ΅Π΅ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π°, ΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ
ΠΠΎΠΌΠΈΠΌΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ ΡΠ΅ΡΡΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Windows ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΅ΡΠ΅ 4 ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΡΠ°ΠΊΡΡ ΠΆΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠ°ΠΊ ΠΈ ΡΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ:
WM_SYSKEYDOWN VkCode dwKeyData
WM_SYSKEYUP VkCode dwKeyData
WM_SYSCHAR nCharacter dwKeyData
WM_SYSDEADCHAR nDeadChar dwKeyData
ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ»Π°ΡΡΡΡ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΠΊΠ»Π°Π²ΠΈΡΠ΅ΠΉ Alt. ΠΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ, Π΅ΡΠ»ΠΈ ΡΡΠΎΠ³ΠΎ Π½Π΅ Π΄Π΅Π»Π°ΡΡ, ΡΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°ΡΡΡΠ΅Π½ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Windows — ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΊΠ°ΠΊ Alt-Tab, Ctrl-Esc ΠΈ ΠΏΡ.
Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠΈΡΡ ΠΏΠΎΠ½ΡΡΠΈΠΉ «Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ» ΠΈ «ΠΎΠΊΠ½ΠΎ, ΠΈΠΌΠ΅ΡΡΠ΅Π΅ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π°». Π‘ΡΠΎΡΠΌΡΠ»ΠΈΡΡΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ°Π²ΠΈΠ», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡ ΡΡΠΈ ΠΏΠΎΠ½ΡΡΠΈΡ.
ΠΎΠΊΠ½ΠΎ, ΠΈΠΌΠ΅ΡΡΠ΅Π΅ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π°, Π²ΡΠ΅Π³Π΄Π° Π°ΠΊΡΠΈΠ²Π½ΠΎ.
Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ.
ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠΊΡΡΠ° Π²Π²ΠΎΠ΄Π°, Π΅ΡΠ»ΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ, ΡΠΎ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π° Π½Π΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠΌΡ ΠΎΠΊΠ½Ρ.
Π΅ΡΠ»ΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π½Π΅ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ, ΡΠΎ ΠΎΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π°.
ΠΡΠ΅, ΡΡΠΎ ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ Π²ΡΡΡΠ½ΠΈΠ»ΠΈ ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΎΠΊΠ½Ρ, ΠΈΠΌΠ΅ΡΡΠ΅ΠΌΡ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π°. ΠΡΠ»ΠΈ Π½Π°ΡΠ΅ ΠΎΠΊΠ½ΠΎ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠΊΡΡΠ° Π²Π²ΠΎΠ΄Π°, ΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ WM_KEYDOWN, WM_KEYUP, WM_CHAR ΠΈ WM_DEADCHAR ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_SYSKEYDOWN, WM_SYSKEYUP, WM_SYSCHAR ΠΈ WM_SYSDEADCHAR.
ΠΠ»Ρ ΡΠ΅Π³ΠΎ Π² Windows ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠΈ Π΄Π²Π° ΠΏΠΎΠ½ΡΡΠΈΡ? ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΠ΅Π±Π΅, ΡΡΠΎ ΠΌΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ. ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠΌ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ½ΡΠ΅ (Π½Π΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅) ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΈ Π½Π°Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΈ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π΅Π³ΠΎ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ. ΠΡΠ»ΠΈ Π±Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ½ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π» ΠΎΠ±ΡΡΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, ΡΠΎ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ Π² ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ — ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ° «Π² ΡΠ»Π΅ΠΏΡΡ» Π²ΡΡΠ΄-Π»ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ΄ΠΎΠ±Π½Π°. Π, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΎΠ½ ΡΠ΅ΡΡΠ΅Ρ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π°, ΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅, ΡΡΠΎ ΠΈΡΠΊΠ»ΡΡΠΈΡ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΡΡΠ΅ΠΊΡ.
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π½Π΅Π»ΡΠ·Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΡ, ΡΡΠΎ ΠΊΠ»Π°Π²ΠΈΡΠ° Alt Π±ΡΠ»Π° Π½Π°ΠΆΠ°ΡΠ° Π·Π°ΡΠ°Π½Π΅Π΅ — ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄Π°ΠΆΠ΅ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΡΡ ΠΊΠ»Π°Π²ΠΈΡ. ΠΠ°Π΄ΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π±ΠΈΡ Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ 1D (Context code) Π² dwKeyData, ΡΡΠΎ Π±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Alt-ΡΡΠ°ΡΡΡΠ°.
ΠΠ΄Π΅ΡΡ ΠΆΠ΅ Π½Π°Π΄ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΎ Windows Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π΄Π²Π΅ ΡΡΠ°ΠΊΡΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ½ΡΡΠΈΡ «Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ»
Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΊΠ½ΠΎ, ΠΏΠΎΠ»ΡΡΠ°ΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ; Π’Π°ΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ.
Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΡΠΈΡΠ°Π΅ΡΡΡ Π²ΡΡΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, ΡΡΠ΅ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π°. ΠΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ²Π΅ΡΠΎΠΌ ΡΠ°ΠΌΠΊΠΈ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π°ΠΊΡΠΈΠ²Π½ΡΡ ΠΎΠΊΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ.
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠ»Π°Π²ΠΈΡ
Π Π°Π±ΠΎΡΠ°Ρ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΎΠΉ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Windows ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ
int GetKeyState (nVkCode);
void GetKeyboardState (lpbKeyStates);
Π€ΡΠ½ΠΊΡΠΈΡ GetKeyState () Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»ΠΎΠ²ΠΎ, Ρ Π°ΡΠ°ΠΊΡΡΠΈΠ·ΡΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ. ΠΡΠ»ΠΈ ΡΡΠ°ΡΡΠΈΠΉ Π±ΠΈΡ (ΠΌΠ°ΡΠΊΠ° 0×8000) ΡΠ°Π²Π΅Π½ 1, ΠΊΠ»Π°Π²ΠΈΡΠ° Π½Π°ΠΆΠ°ΡΠ°, Π΅ΡΠ»ΠΈ 0, ΡΠΎ ΠΎΡΠΏΡΡΠ΅Π½Π°. ΠΠ»Π°Π΄ΡΠΈΠΉ Π±ΠΈΡ (ΠΌΠ°ΡΠΊΠ° 1) ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ «ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΠΎΠΉ» ΠΊΠ»Π°Π²ΠΈΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, CapsLock).
Π€ΡΠ½ΠΊΡΠΈΡ GetKeyboardState () Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· 256 Π±Π°ΠΉΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ Π²ΡΠ΅Ρ ΠΊΠ»Π°Π²ΠΈΡ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΊΠ»Π°Π²ΠΈΡ. ΠΠ°ΠΆΠ΄ΡΠΉ Π±Π°ΠΉΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΎΠ΄Π½Ρ ΠΊΠ»Π°Π²ΠΈΡΡ, Π΅Π³ΠΎ ΡΡΡΠ°ΡΠΈΠΉ Π±ΠΈΡ (ΠΌΠ°ΡΠΊΠ° 0×80) ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ, ΠΌΠ»Π°Π΄ΡΠΈΠΉ (ΠΌΠ°ΡΠΊΠ° 1) — ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ.
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΡΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ Windows ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ ΡΡΠ½ΠΊΡΠΈΡ
void SetKeyboardState (lpKeyStates);
ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π΄Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΊΠ»Π°Π²ΠΈΡ. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΡΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ², Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΌΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, Π½ΠΎ Π½Π΅ ΠΏΠΎΡΡΠ»Π°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΡΠΈΠΌΡΠ»ΠΈΡΡΡΡΠΈΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΎΠΉ. ΠΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π½Π°Π΄ΠΎ ΠΎΡΠ΅Π½Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΠΌ ΡΠ΅ΡΡΡΡΠΎΠΌ.
ΠΠ°ΡΠ΅ΡΠΊΠ°
ΠΠΎΠ²ΠΎΡΡ ΠΎ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ΅ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π²Π΅ΡΡΠΈ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ½ΡΡΠΈΠ΅ — ΠΊΠ°ΡΠ΅ΡΠΊΠ° (caret). ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Windows ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π²Π° ΡΠΊΠ°Π·ΡΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° — ΠΊΡΡΡΠΎΡ (cursor), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΡΡΠΈ, ΠΈ ΠΊΠ°ΡΠ΅ΡΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΌΠ΅ΡΡΠΎ, Π² ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ Π²Π²ΠΎΠ΄ΠΈΡΡΡΡ ΡΠ΅ΠΊΡΡ. ΠΠ°ΡΠ΅ΡΠΊΠ° ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΎΠΉ.
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΊΠ°ΡΠ΅ΡΠΊΠΎΠΉ Π½Π°Π΄ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ. ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΡΠ²ΡΠ·Π°Π½Ρ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΊΠ°ΡΠ΅ΡΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΠΌ ΡΠ΅ΡΡΡΡΠΎΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΡΠ΅ΡΠΊΠΈ. Π’Π°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠ°ΡΠ΅ΡΠΊΡ; ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ Π΅Π΅ «ΡΠΊΡΡΠ²Π°Π½ΠΈΡ» ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠ΅Ρ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π°, ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π΅Π΅, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΠ°ΡΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π°.
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠ°ΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
void ShowCaret (hWnd);
void HideCaret (hWnd);
Π‘ ΠΈΡ ΠΏΠΎΠΌΠΎΡΡΡ ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΊΠ°ΡΠ΅ΡΠΊΡ ΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π΅ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ hWnd ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ NULL, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΎΠΊΠ½ΠΎ. ΠΠΈΠ΄ΠΈΠΌΠ°Ρ ΠΊΠ°ΡΠ΅ΡΠΊΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΌΠΈΠ³Π°ΡΡ.
void SetCaretPos (nX, nY);
void GetCaretPos (lpPoint);
void SetCaretBlinkTime (mMSec);
UINT GetCaretBlinkTime (void);
ΠΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π·Π°Π΄Π°ΡΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΡΠ΅ΡΠΊΠΈ Π² ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°Ρ ΠΎΠΊΠ½Π° ΠΈ ΠΏΠ΅ΡΠΈΠΎΠ΄ ΠΌΠΈΠ³Π°Π½ΠΈΡ ΠΊΠ°ΡΠ΅ΡΠΊΠΈ, Π² ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Π°Ρ . ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠ°ΡΠ΅ΡΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
void CreateCaret (hWnd, hBmp, nWidth, nHeight);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ `hBmp' ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Ρ Π΅Π½Π΄Π»ΠΎΠΌ Π±ΠΈΡΠΌΠ°ΠΏΠ°, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ `nWidth' ΠΈ `nHeight' ΠΈΠ³Π½ΠΎΡΠΈΡΡΡΡΡΡ, ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π΄Π²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ: 0 — ΡΠΏΠ»ΠΎΡΠ½Π°Ρ ΠΊΠ°ΡΠ΅ΡΠΊΠ°, ΠΈΠ»ΠΈ 1 — «ΡΠ΅ΡΠ°Ρ» ΠΊΠ°ΡΠ΅ΡΠΊΠ°; Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ `nWidth' ΠΈ `nHeight' Π·Π°Π΄Π°ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΊΠ°ΡΠ΅ΡΠΊΠΈ.
void DestroyCaret (void);
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΡΡ ΠΊΠ°ΡΠ΅ΡΠΊΡ (Π΅ΡΠ»ΠΈ ΠΊΠ°ΡΠ΅ΡΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±ΠΈΡΠΌΠ°ΠΏ, ΡΠΎ Π±ΠΈΡΠΌΠ°ΠΏ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ).