Π€ΡΠ½ΠΊΡΠΈΡ TranslateMessage, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±ΡΡΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π² ΠΏΠ΅ΡΠ»Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΡΠ»ΡΠΆΠΈΡ Π΄Π»Ρ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ (Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΌ ΠΎΠΊΠ½Π°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, COM/DCOM, ΠΈΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ Π²Π²ΠΎΠ΄ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΡΠ·ΠΎΠ² TranslateMessage ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΡΡΠΈΡΡ). ΠΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ ΠΊΠ°ΠΊΡΡ-Π»ΠΈΠ±ΠΎ ΠΊΠ»Π°Π²ΠΈΡΡ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ΅, ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠΎΡΡΠ»Π°Π΅Ρ ΠΎΠΊΠ½Ρ, Π½Π°Ρ ΠΎΠ΄ΡΡΠ΅ΠΌΡ Π² ΡΠΎΠΊΡΡΠ΅, ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_KEYDOWN. Π§Π΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π½Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ β Π΄Π²ΡΡ Π±Π°ΠΉΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ΅ ΠΈ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ°ΡΠΊΠ»Π°Π΄ΠΊΠΈ, ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ <CapsLock> ΠΈ Ρ.ΠΏ. Π€ΡΠ½ΠΊΡΠΈΡ TranslateMessage. ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ² ΡΠ°ΠΊΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ (ΠΏΡΠΈΡΠ΅ΠΌ Π½Π΅ Π² ΠΊΠΎΠ½Π΅Ρ, Π° Π² Π½Π°ΡΠ°Π»ΠΎ) ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_CHAR, Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΊΠΎΠ΄ ΡΠΈΠΌΠ²ΠΎΠ»Π°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π½Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠ΅, Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠ°ΡΠΊΠ»Π°Π΄ΠΊΠΈ, ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ <CapsLock>, <Shift> ΠΈ Ρ. ΠΏ. ΠΠΌΠ΅Π½Π½ΠΎ ΡΡΠ½ΠΊΡΠΈΡ TranslateMessage ΠΏΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΊΠΎΠ΄Ρ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠΎΠ΄ ΡΠΈΠΌΠ²ΠΎΠ»Π°. ΠΡΠΈ ΡΡΠΎΠΌ Π½Π°ΠΆΠ°ΡΠΈΠ΅ Π»ΡΠ±ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ WM_KEYDOWN, Π° Π²ΠΎΡ WM_CHAR Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ Π½Π΅ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΊΠ»Π°Π²ΠΈΡ, Π° ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΠΊΠ°ΠΊΠΎΠΌΡ-ΡΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ WM_CHAR Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΡΠ°ΠΊΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ, ΠΊΠ°ΠΊ <Shift> <Ctrl>, <Insert>, ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΊΠ»Π°Π²ΠΈΡ).
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅Π£ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² VCL Π΅ΡΡΡ ΡΠΎΠ±ΡΡΠΈΡ OnKeyDown ΠΈ OnKeyPress. ΠΠ΅ΡΠ²ΠΎΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_KEYDOWN, Π²ΡΠΎΡΠΎΠ΅ β ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_CHAR.
ΠΡΠ»ΠΈ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΡΡΡΠ°, ΡΡΠ½ΠΊΡΠΈΡ GetMessage ΠΎΠΆΠΈΠ΄Π°Π΅Ρ, ΠΏΠΎΠΊΠ° ΡΠ°ΠΌ Π½Π΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ. ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠΎΠ³ΠΎ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π½ΠΈΡΡ Π½Π΅ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ.
ΠΠ΅ΡΠ»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·Π²Π»Π΅ΡΡ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠΊΠΎΠ½Π½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΈ Π²ΡΠ΅ ΠΎΠΊΠ½Π°, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΠΎΠΉ Π½ΠΈΡΡΡ, ΠΏΠ΅ΡΠ΅ΡΡΠ°ΡΡ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠΌΠ΅Π½Π½ΠΎ ΡΡΠΈΠΌ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π·Π°Π²ΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ²ΠΎΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π΄Π΅Π»Π°Π΅Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΡΡΠ΅ΡΡ ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ : ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°ΡΡΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, Π½ΠΎ Π½Π΅ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡΡΡ ΠΈΠ· Π½Π΅Π΅ ΠΈ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡ, Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Ρ ΠΈΠ· ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Ρ.
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π·Π°Π²ΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΈΠΊΠ», Π² Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠ°Π²ΠΈΡΡ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΈ PeekMessage, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π΅ΡΡΡ Π»ΠΈ Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Ρ, Π½ΡΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ DispatchMessage Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠΌΡ ΠΎΠΊΠ½Ρ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡΡΡ ΠΈΠ· ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π΄ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° ΡΠΈΡ. 1.5 (Π΄Π»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ Π² Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΠ΅ΡΠ»Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π΅ ΡΠ°ΠΌΡΡ Π²Π°ΠΆΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ: GetMessage ΠΈ DispatchMessage, Ρ ΠΎΡΡ ΠΈ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π³Π»Π°Π²Π½Π°Ρ ΠΏΠ΅ΡΠ»Ρ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π½Π° ΡΠΈΡ. 1.4).
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΡΠ΅ΠΊΡΡΡΠΈΠΈ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΎ Π½Π° ΠΏΡΠΎΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅: ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΊΠΎΠ΄, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° ΡΠΎΡΠΌΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠΊΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, Π½Π΅ΡΠ΅ΡΠΏΠ΅Π»ΠΈΠ²ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ½ΠΎΠ²Π° Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ, Π·Π°ΠΏΡΡΡΠΈΠ² Π²ΡΠΎΡΡΡ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΈ ΡΠ°ΠΊ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΡΠ΅Π½Ρ Π³Π»ΡΠ±ΠΎΠΊΡΡ ΡΠ΅ΠΊΡΡΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΡΠ΄ Π»ΠΈ ΡΠΌΠΎΠΆΠ΅Ρ (ΡΠ΅ΡΠΏΠ΅Π½ΠΈΡ Π½Π΅ Ρ Π²Π°ΡΠΈΡ), Π½ΠΎ ΡΠ°ΡΡΠΎ Π΄Π°ΠΆΠ΅ ΡΠΎ, ΡΡΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π²ΡΠ·Π²Π°Π½Ρ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΠΏΡΠΈΡΡΠ½ΡΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡΠΌ. Π Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΡΠ°ΠΉΠΌΠ΅ΡΠ°, ΡΠΎ Π·Π΄Π΅ΡΡ ΡΠ΅ΠΊΡΡΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ³Π»ΡΠ±Π»ΡΡΡΡΡ Π΄ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅ΠΊΠ°. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ΅ΡΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΌΠ΅ΡΡ ΠΏΡΠΎΡΠΈΠ² ΡΠ΅ΠΊΡΡΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ»ΡΡΠ°Π΅ Ρ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ Π΅Π΅ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ (Enabled := False), ΠΈ Π²Π½ΠΎΠ²Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. Π ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΠΎΠ΅ Π½ΠΈ ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡ ΠΎΠΊΠ½Ρ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ PostThreadMessage. Π’Π°ΠΊΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π² ΠΏΠ΅ΡΠ»Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ DispatchMessage ΠΈΡ ΠΏΡΠΎΡΡΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅Ρ.
Π ΠΈΡ. 1.6. ΠΠ»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ»Π΅ΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΡΠ»Π°ΡΡΡΡ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΎΠΊΠ½Π°ΠΌ. ΠΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΡΠ»Π°ΡΡ ΡΠ°ΠΊΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ PostMessage, ΡΠΊΠ°Π·Π°Π² Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π΄ΡΠ΅ΡΠ°ΡΠ° Π½Π΅ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ HWND_BROADCAST. Π’Π°ΠΊΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠ°Ρ Π²ΡΠ΅ ΠΎΠΊΠ½Π°, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΡΠΎΠ»Π΅ ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΠΏΡΠΈ ΡΡΠΎΠΌ Π²Π»Π°Π΄Π΅Π»ΡΡΠ΅Π² (Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΡ). Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ BroadcastSystemMessage (Π½Π°ΡΠΈΠ½Π°Ρ Ρ Windows Π₯Π β Π΅Π΅ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ BroadcastSystemMessageEx), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠΎΡΠ½ΠΈΡΡ, ΠΊΠ°ΠΊΠΈΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΠΎΠΊΠ½Π°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ ΡΠΈΡΠΎΠΊΠΎΠ²Π΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
ΠΡΠΎΠΌΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² wParam ΠΈ lParam, ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π²ΡΠ΅ΠΌΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΡΡΡΠΎΡΠ° Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΠΎΠ»Ρ Π΅ΡΡΡ Π² ΡΡΡΡΠΊΡΡΡΠ΅ TMsg, ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ GetMessage ΠΈ DispatchMessage, Π½ΠΎ Ρ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ. ΠΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΡΡΡΠΎΡΠ° ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ GetMessageTime ΠΈ GetMessagePos ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΄ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π±Π΅Π· ΡΡΠ°ΡΡΠΈΡ DispatchMessage ΠΈ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ. ΠΡΠ»ΠΈ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΠ· ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, ΠΊΠ°ΠΊ "ΡΠ²ΠΎΠ΅", ΠΎΠ½ΠΈ ΡΠ°ΠΌΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ Π΅Π³ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅, ΠΈ ΡΠΎΠ³Π΄Π° TranslateMessage ΠΈ DispatchMessage Π²ΡΠ·ΡΠ²Π°ΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ. Π ΡΡΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΎΡΠ½ΠΎΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
β‘ TranslateAccelerator β Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠΉ ΠΈΠ· ΡΠ΅ΡΡΡΡΠΎΠ² ΡΠ°Π±Π»ΠΈΡΡ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π΅Ρ Π½Π°ΠΆΠ°ΡΠΈΠ΅ "Π³ΠΎΡΡΡΠΈΡ " ΠΊΠ»Π°Π²ΠΈΡ ΠΌΠ΅Π½Ρ ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΎΠΊΠΎΠ½Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ Π΅ΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WM_COMMAND ΠΈΠ»ΠΈ WM_SYSCOMMAND, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ΅ ΡΠΎΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠ½ΠΊΡΠ° ΠΌΠ΅Π½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ;
β‘ TranslateMDISysAccel β Π°Π½Π°Π»ΠΎΠ³ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π΅Ρ "Π³ΠΎΡΡΡΠΈΠ΅" ΠΊΠ»Π°Π²ΠΈΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ MDI-ΠΎΠΊΠΎΠ½;
β‘ IsDialogMessage β ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΠΎΡΠΎΠ±ΡΠΉ ΡΠΌΡΡΠ» Π΄Π»Ρ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΎΠΊΠΎΠ½ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ <Tab> Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ). ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π½Π΅ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΎΠΊΠΎΠ½ ΠΈ ΠΎΠΊΠΎΠ½, Π½Π΅ ΡΠ²Π»ΡΡΡΠΈΡ ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠΌΠΈ (Ρ.Π΅. ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΌΠΈ Π±Π΅Π· ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ CreateDialogXXXX), Π½ΠΎ ΡΡΠ΅Π±ΡΡΡΠΈΠΌΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΡΡΠ°Π²Π»ΡΡΡΡΡ Π² ΠΏΠ΅ΡΠ»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΠΈΡΡΠΈΠ½Π³ 1.6 ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΠ΅ΡΠ»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ Π²ΡΠ·ΠΎΠ² TranslateAccelerator Π΄Π»Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΉ MDI-ΡΠΎΡΠΌΡ ΠΈ TranslateMDISysAccel Π΄Π»Ρ Π΄ΠΎΡΠ΅ΡΠ½Π΅ΠΉ.
ΠΠΈΡΡΠΈΠ½Π³ 1.6. ΠΠ΅ΡΠ»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ "Π³ΠΎΡΡΡΠΈΡ " ΠΊΠ»Π°Π²ΠΈΡ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ MDI-ΠΎΠΊΠΎΠ½while GetMessage(Msg, 0, 0, 0) do
if not TranslateMDISysAccel(ActiveMDIChildHandle, Msg)
and not TranslateAccelerator(MDIFormHandle, AccHandle, Msg) then
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
ΠΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΠΎΡΡΠ»ΠΊΠΈ, ΠΎΠ½ΠΎ Π½Π΅ ΡΡΠ°Π²ΠΈΡΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ Π½Π°ΠΏΡΡΠΌΡΡ. ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ SendMessage. ΠΡΠ»ΠΈ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΈΠ· ΡΠΎΠΉ ΠΆΠ΅ Π½ΠΈΡΠΈ, ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΎΠΊΠ½ΠΎ-Π°Π΄ΡΠ΅ΡΠ°Ρ, ΡΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ ΠΏΡΡΠΌΠΎΠΌΡ Π²ΡΠ·ΠΎΠ²Ρ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ. ΠΡΠ»ΠΈ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ Π΄ΡΡΠ³ΠΎΠΉ Π½ΠΈΡΠΈ, Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΈΠΌΠ΅ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ, ΡΠ΅ΠΌ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π΄Π»Ρ ΠΏΠΎΡΠ»Π°Π½Π½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. Π€ΡΠ½ΠΊΡΠΈΠΈ GetMessage ΠΈ PeekMessage ΡΠ½Π°ΡΠ°Π»Π° Π²ΡΠ±ΠΈΡΠ°ΡΡ Π²ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΡΡΠΎΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΡ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ, ΠΈ Π»ΠΈΡΡ Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ Π°Π½Π°Π»ΠΈΠ·Ρ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΏΠΎΡΠ»Π°Π½Π½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΎΠΊΠ½Ρ, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ Π½Π°ΠΏΡΡΠΌΡΡ Π»ΠΈΠ±ΠΎ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·ΡΡΡΡΡ Π²Π½ΡΡΡΠΈ GetMessage ΠΈΠ»ΠΈ PeekMessage, ΡΠΎ ΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ TranslateMDISysAccel, TranslateAccelerator ΠΈ TranslateMessage. ΠΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΠΎΠΊΠ½Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΡΠΌΡΠ»ΠΈΡΡΡΡΠΈΡ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ΅. Π’Π°ΠΊΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠΊΠ½Ρ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΡΡΠ»Π°ΡΡ, Π° Π½Π΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΠΏΡΠΎΡΠ»ΠΈ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΈΠΊΠ» ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΎΠΊΠ½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π½Π° Π½ΠΈΡ ΠΎΡΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π»ΠΎ. ΠΠ»Ρ ΡΠΌΡΠ»ΡΡΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ keybd_event, Π½ΠΎ ΠΎΠ½Π° ΠΏΠΎΡΡΠ»Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΠΎΠΊΠ½Ρ, Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΠΌΡ, ΡΡΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ΄ΠΎΠ±Π½ΠΎ.