Π Π°Π±ΠΎΡΠ° Ρ ΠΎΠΊΠ½Π°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ Π±ΡΠ²Π°Π΅Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ «Π·Π°Ρ Π²Π°Ρ» ΠΊΡΡΡΠΎΡΠ°. «ΠΠ°Ρ Π²Π°ΡΠ΅Π½ΡΠΉ» ΠΊΡΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠΊΠ½Ρ, Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΌΡΡΠΈ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎ ΠΎΠΊΠ½ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°Ρ Π²Π°ΡΠΈΠ»ΠΎ ΠΊΡΡΡΠΎΡ. ΠΡΠΈ ΠΎΠΊΠ½ΠΎ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ WM_NCHITTEST, WM_NCMOUSEMOVE ΠΈ ΠΏΡ., Π° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ Π±Ρ ΠΎΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊΠΎΠ΅ Π½ΡΠΆΠ½ΠΎ Π½Π° Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π Π°Π±ΠΎΡΠ° Ρ ΠΎΠΊΠ½Π°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΌΡΡΠΈ, ΡΠ°Π±ΠΎΡΠ° Ρ ΠΌΡΡΡΡ
ΠΡΠ΄Π΅Π»ΡΠ½ΠΎ Π½Π°Π΄ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΡΡΡΡ. ΠΠ±ΡΡΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΊΡΡΡΠΎΡ ΠΌΡΡΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π°Π΄ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΎΠΊΠ½ΠΎΠΌ, ΡΡΠΎ ΠΎΠΊΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΌΡΡΠΈ, ΠΏΡΠΈΡΠ΅ΠΌ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΊΡΡΡΠΎΡΠ° ΠΌΡΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΏΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΎΠΊΠ½Π° — ΠΏΠΎΠ»Π΅ .hCursor ΡΡΡΡΠΊΡΡΡΡ WNDCLASS. ΠΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΡΡΡ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΡΠΎ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΏΠΎΡΡΠ»Π°Π΅ΠΌΡΠ΅ ΠΌΡΡΡΡ.
WM_NCHITTEST 0 y & x
ΠΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΡΡΠΈ ΡΠ΅ΡΠ΅Π· ΠΎΠ±Π»Π°ΡΡΡ, Π·Π°Π½ΡΡΡΡ ΠΎΠΊΠ½ΠΎΠΌ, ΠΎΠΊΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_NCHITTEST, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ΅ΡΡΠΎΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΡΡΠΈ — Π½Π° ΡΠ°ΠΌΠΊΠ΅, Π² ΡΠ³Π»Π°Ρ ΡΠ°ΠΌΠΊΠΈ, Π½Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅, Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈ ΠΏΡ. ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΠ΅Ρ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΡΡΡΠΎΡΠ° ΠΌΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ HTCLIENT ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΊΡΡΡΠΎΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π°Π΄ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΡΡ ΠΎΠΊΠ½Π°, HTTOPLEFT — Π½Π°Π΄ Π²Π΅ΡΡ Π½ΠΈΠΌ Π»Π΅Π²ΡΠΌ ΡΠ³ΠΎΠ»ΠΊΠΎΠΌ ΡΠ°ΠΌΠΊΠΈ ΠΎΠΊΠ½Π°, ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ ΠΈ ΠΏΡ. ΠΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΡΡΡΠΎΡΠ° ΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°Ρ ΡΠΊΡΠ°Π½Π°.
WM_NCMOUSEMOVE wHitTest y & x
ΠΡΠ»ΠΈ WM_NCHITTEST ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΡΠΎ ΠΊΡΡΡΠΎΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π°Π΄ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΡΡ ΠΎΠΊΠ½Π°, ΡΠΎ ΠΎΠΊΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_NCMOUSEMOVE; Y ΠΈ X ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π·Π°Π΄Π°Π½Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΡΠ°Π½Π°.
WM_NCLBUTTONDOWN wHitTest y & x
WM_NCLBUTTONUP wHitTest y & x
WM_NCRBUTTONDOWN wHitTest y & x
WM_NCRBUTTONUP wHitTest y & x
WM_NCMBUTTONDOWN wHitTest y & x
WM_NCMBUTTONUP wHitTest y & x
WM_NCLBUTTONDBLCLK wHitTest y & x
WM_NCRBUTTONDBLCLK wHitTest y & x
WM_NCMBUTTONDBLCLK wHitTest y & x
ΠΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ»Π°ΡΡΡΡ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ/ΠΎΡΠΏΡΡΠΊΠ°Π½ΠΈΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΌΡΡΠΈ Π½Π°Π΄ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΡΡ ΠΎΠΊΠ½Π°; ΠΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΡΡΡΠΎΡΠ° ΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°Ρ ΡΠΊΡΠ°Π½Π°, wParam ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π·ΠΎΠ½Ρ, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅.
WM_MOUSEMOVE nKeys y & x
ΠΠΎΠ³Π΄Π° ΠΌΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π° (WM_NCHITTEST Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΠ»ΠΎ HTCLIENT) ΡΠΎ ΠΎΠΊΠΎΠ½Π½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_MOUSEMOVE, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΡΡΠΈ Π² ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°Ρ ΠΎΠΊΠ½Π° ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠ»Π°Π²ΠΈΡ (ctrl, shift ΠΈ ΡΡΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ).
WM_LBUTTONDOWN nKeys y & x
WM_LBUTTONUP nKeys y & x
WM_RBUTTONDOWN nKeys y & x
WM_RBUTTONUP nKeys y & x
WM_MBUTTONDOWN nKeys y & x
WM_MBUTTONUP nKeys y & x
ΠΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ»Π°ΡΡΡΡ ΠΎΠΊΠ½Ρ, Π΅ΡΠ»ΠΈ ΠΡ Π½Π°ΠΆΠ°Π»ΠΈ ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΌΡΡΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΊΡΡΡΠΎΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π°Π΄ ΠΎΠΊΠ½ΠΎΠΌ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ nKeys ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠ»Π°Π²ΠΈΡ.
WM_LBUTTONDBLCLK nKeys y&x
WM_RBUTTONDBLCLK nKeys y&x
WM_MBUTTONDBLCLK nKeys y&x
ΠΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ Π΄Π²ΡΡ Π±ΡΡΡΡΡΡ Π½Π°ΠΆΠ°ΡΠΈΡΡ Π½Π° ΠΎΠ΄Π½Ρ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΌΡΡΠΈ. ΠΠ±ΡΡΠ½ΠΎ ΠΎΠΊΠ½ΠΎ ΠΈΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ. ΠΡΠ»ΠΈ ΠΡ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΠΎ ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΎΠΊΠ½Π° ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΈΠ»Ρ CS_DBLCLKS.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ Π½Π°Π΄ΠΎ ΠΈΠΌΠ΅ΡΡ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎ Π΄Π²ΠΎΠΉΠ½ΠΎΠΌ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ ΠΡ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΌ (ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΠΎΠΌ) Π½Π°ΠΆΠ°ΡΠΈΠΈ. ΠΠΎΡΡΠΎΠΌΡ Π½Π°Π΄ΠΎ ΡΠ°ΠΊ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΌΠΈ ΠΈ Π΄Π²ΠΎΠΉΠ½ΡΠΌΠΈ Π½Π°ΠΆΠ°ΡΠΈΡΠΌΠΈ, ΡΡΠΎ Π±Ρ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎ Π΄ΡΡΠ³ΠΎΠΌΡ. Π ΡΠ°ΠΌΠΎΠΌ ΡΠ΄Π°ΡΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ Π½Π°ΠΆΠ°ΡΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΌ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΊΡΡΡΠΎΡΠ°, ΠΈΠ·ΠΌΠ΅Π½ΡΡ Π΅Π³ΠΎ Ρ Π΅Π½Π΄Π» Π² ΡΡΡΡΠΊΡΡΡΠ΅ ΠΊΠ»Π°ΡΡΠ° ΠΎΠΊΠ½Π°:
UINT SetClassWord (hWnd, GCW_HCURSOR, hNewCursor);
ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊΡΡΡΠΎΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΎΠΊΠΎΠ½, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΡ ΠΊ ΡΡΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ. ΠΡΠ»ΠΈ ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄, ΡΠΎ ΠΠ°ΠΌ Π½Π°Π΄ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΎΠΊΠ½Π° — ΠΏΡΠΈ Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠ΅ΠΆΠ½ΠΈΠΉ ΠΊΡΡΡΠΎΡ, ΠΏΡΠΈ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ — ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ Π΅Π½Π΄Π» ΠΊΡΡΡΠΎΡΠ° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ:
HCURSOR LoadCursor (hInstance, lpszCursor);
HCURSOR CreateCursor (
hInstance, xHotSpot, yHotSpot, nWidth, nHeight, lpvAND, lpvXOR
);
BOOL DestroyCursor (hCursor);
Π€ΡΠ½ΠΊΡΠΈΡ LoadCursor Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΊΡΡΡΠΎΡ ΠΈΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΠ°ΠΌΠΈ, CreateCursor ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΊΡΡΡΠΎΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π²ΡΡ ΠΌΠ°ΡΠΎΠΊ — lpvAND ΠΈ lpvXOR, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΡΡΡΠ΅Ρ ΡΠ²Π΅ΡΠ½ΡΠΉ ΠΊΡΡΡΠΎΡ — ΡΠ΅ΡΠ½ΡΠΉ, Π±Π΅Π»ΡΠΉ, ΡΠ²Π΅Ρ ΡΠΎΠ½Π°, ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΎΠ½. Π ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ «ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠΉ ΠΊΠ°ΠΌΠ΅Π½Ρ» — ΡΠΈΡΠΈΠ½Π° ΠΈ Π²ΡΡΠΎΡΠ° ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΡΡΡΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡ Π½Π°Π΄ΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
int GetSystemMetrics (SM_CXCURSOR);
int GetSystemMetrics (SM_CYCURSOR);
Π€ΡΠ½ΠΊΡΠΈΡ DestroyCursor ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΡΡΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΡ Π·Π°Π³ΡΡΠ·ΠΈΠ»ΠΈ ΠΈΠ· ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ CreateCursor.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ»ΠΈ ΡΠΏΡΡΡΠ°ΡΡ ΠΊΡΡΡΠΎΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
int ShowCursor (bShow);
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ·Π½Π°ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΊΡΡΡΠΎΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
void SetCursorPos (nX, nY);
void GetCursorPos (lpPoint);
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ Π·ΠΎΠ½Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΡΡΡΠΎΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
void ClipCursor (lpRect);
ΠΡΠ΅ ΠΎΠ΄Π½Π° ΡΡΠ½ΠΊΡΠΈΡ,
HCURSOR SetCursor (hCursor);
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ Ρ Π΅Π½Π΄Π»Π° ΠΊΡΡΡΠΎΡΠ°, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΅ Π½Π°Π΄ΠΎ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΡΡΡΠΎΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΠΌ ΡΠ΅ΡΡΡΡΠΎΠΌ. ΠΡΠ»ΠΈ ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΡΠΎ ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΊΡΡΡΠΎΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΠΎΠΊΠΈΠ½Π΅Ρ ΠΏΡΠ΅Π΄Π΅Π»Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°, ΠΈΠ»ΠΈ ΠΎΠΊΠ½ΠΎ ΠΏΠΎΡΠ΅ΡΡΠ΅Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ. ΠΠ΅ΡΠ΅Π΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°Π΄ΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Ρ Π΅Π½Π΄Π» ΠΊΡΡΡΠΎΡΠ°, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° ΠΎΠΊΠΎΠ½ ΡΠ°Π²Π΅Π½ 0, ΡΡΠΎ Π±Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π»Π° Π΅Π³ΠΎ ΠΏΡΠ΅ΠΆΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ. ΠΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅ «Π·Π°Ρ Π²Π°ΡΠ°» ΠΊΡΡΡΠΎΡΠ°.
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ Π±ΡΠ²Π°Π΅Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ «Π·Π°Ρ Π²Π°Ρ» ΠΊΡΡΡΠΎΡΠ°. «ΠΠ°Ρ Π²Π°ΡΠ΅Π½ΡΠΉ» ΠΊΡΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠΊΠ½Ρ, Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΌΡΡΠΈ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎ ΠΎΠΊΠ½ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°Ρ Π²Π°ΡΠΈΠ»ΠΎ ΠΊΡΡΡΠΎΡ. ΠΡΠΈ ΠΎΠΊΠ½ΠΎ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ WM_NCHITTEST, WM_NCMOUSEMOVE ΠΈ ΠΏΡ., Π° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ Π±Ρ ΠΎΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊΠΎΠ΅ Π½ΡΠΆΠ½ΠΎ Π½Π° Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° «ΠΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ» (Drag And Drop). Π’ΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΎΠΊΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Ρ Π²Π°ΡΡΠ²Π°ΡΡ ΠΊΡΡΡΠΎΡ Π² Π΄Π°Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ.
ΠΠ»Ρ «Π·Π°Ρ Π²Π°ΡΡΠ²Π°Π½ΠΈΡ» ΠΊΡΡΡΠΎΡΠ° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
HWND SetCapture (hWnd);
void ReleaseCapture (void);
Π€ΡΠ½ΠΊΡΠΈΡ SetCapture Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Ρ Π΅Π½Π΄Π» ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠ΅Π³ΠΎ «Π·Π°Ρ Π²Π°Ρ» Π² ΡΡΠΎ Π²ΡΠ΅ΠΌΡ, Π»ΠΈΠ±ΠΎ NULL.
Π Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ ΠΎΠΊΠΎΠ½: Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅, ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ (owned)
ΠΠΎΠΊΠ° ΡΡΠΎ ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΎΠΊΠ½ΠΎ — Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ ΠΎΠΊΠΎΠ½ ΠΈ ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ.
ΠΠΊΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
HWND CreateWindow (
lpszClassName, lpszTitle, dwStyle,
nX, nY, nWidth, nHeight,
hwndParent, hMenu, hInstance, lpvParam
);
ΠΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ ΡΠ°Π½ΡΡΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π½Π° Π΅Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°Ρ . Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ ΠΎΠ±ΡΠ°ΡΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π²ΠΈΠ΄Ρ ΠΎΠΊΠΎΠ½ ΠΈ ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ.
Π‘Π°ΠΌΡΠΉ ΠΎΠ±ΡΠΈΠΉ Π²ΠΈΠ΄ ΠΎΠΊΠ½Π° — ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΠΈΠ΅ΡΡ (overlapped). Π’Π°ΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΈΠ»Ρ WS_OVERLAPPED ΠΈΠ»ΠΈ WS_OVERLAPPEDWINDOW ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠΊΠ½Π°. ΠΡΠΈ ΠΎΠΊΠ½Π° Π²ΡΠ΅Π³Π΄Π° ΠΈΠΌΠ΅ΡΡ ΡΠ°ΠΌΠΊΡ (border), Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ (title-bar) ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ. ΠΠΊΠ½Π° ΡΡΠΎΠ³ΠΎ ΡΡΠΈΠ»Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π³Π»Π°Π²Π½ΡΡ ΠΎΠΊΠΎΠ½ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈΠ»Ρ WS_OVERLAPPEDWINDOW, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ, ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ»ΠΈΠ·ΠΊΠ°Ρ ΠΊ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΠΈΠΌΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ ΠΎΠΊΠΎΠ½ — Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΠ΅ (popup) ΠΎΠΊΠ½Π°, Π·Π°Π΄Π°Π΅ΡΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΡΡΠΈΠ»Ρ WS_POPUP ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠΊΠ½Π°. ΠΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΠΈΡ ΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΌΠΎΠ³ΡΡ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° (title bar). Π ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ.
ΠΡΠ»ΠΈ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΠΈΡ ΡΡ ΠΈΠ»ΠΈ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΡ ΠΎΠΊΠΎΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Ρ Π΅Π½Π΄Π» ΠΎΠΊΠ½Π° — ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, ΡΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΎΠΊΠ°ΠΆΡΡΡΡ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡΡ , Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (owner) ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ (owned) ΠΎΠΊΠΎΠ½.
ΠΠ»Π°Π²Π½Π°Ρ ΠΈΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ ΡΠ²ΡΠ·Π°Π½Π° Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΡΠΌ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² Z-Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ: ΠΎΠΊΠ½ΠΎ — ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠ΅Π³Π΄Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ ΠΎΠΊΠ½ΠΎΠΌ, ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ Π² Z-Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ, Π΄ΡΡΠ³ΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π²ΡΠ»Π΅Π΄ Π·Π° Π½ΠΈΠΌ. ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠΎΠ½ Π² X ΠΈ Y Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΡ Π½Π΅ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π°Π½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΎΠΊΠ½Π° ΠΌΠΎΠ³ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π²Π½Π΅ ΠΎΠΊΠ½Π°_ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ ΠΎΠΊΠ½ΠΎ_ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΌ ΠΈΠ»ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ, ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΈΠΌ ΠΎΠΊΠ½Π° ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΌΠΈ. ΠΡΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎΠΊΠ½Π°_ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΎΠΊΠ½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡΡΡ.
Π Windows ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠ΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ — Ρ ΠΎΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΡΡ Ρ Π΅Π½Π΄Π» «ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ» ΠΎΠΊΠ½Π°, Π½ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ Π΅Π½Π΄Π» ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ GetParent), Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ NULL.
ΠΡΠ΅ ΠΎΠ΄Π½Π° Π±ΠΎΠ»ΡΡΠ°Ρ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ ΠΎΠΊΠΎΠ½ — Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ (child) — ΠΎΠΊΠ½Π°, ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ ΡΡΠΈΠ»Ρ WS_CHILD ΠΈ Ρ Π΅Π½Π΄Π»Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° (parent). ΠΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ, Π½ΠΎ ΠΌΠΎΠ³ΡΡ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠ°ΠΌΠΊΠΈ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°; Ρ Π½ΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ΅Π½Ρ — ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ CreateWindow Π·Π°Π΄Π°Π΅Ρ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΎΠΊΠ½Π°.
ΠΡΠ½ΠΎΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΎΠΊΠΎΠ½ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ, Π½ΠΎ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ:
Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΌΠΎΠ³ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.
ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΎΠΊΠΎΠ½ Π·Π°Π΄Π°ΡΡΡΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ-Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π° Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, Π° Π½Π΅ ΡΠΊΡΠ°Π½Π°.
Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΎΠΊΠ½Π°, ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, Π½Π°Π·ΡΠ²Π°ΡΡΡΡ «ΡΠ΅ΡΡΡΠΈΠ½ΡΠΊΠΈΠΌΠΈ» (sibling) ΠΎΠΊΠ½Π°ΠΌΠΈ. ΠΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΠΈΠ΅ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π° ΡΠ΅ΡΡΡΠΈΠ½ΡΠΊΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΌΠΎΠ³ΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Π²ΡΠ²ΠΎΠ΄ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. Π§ΡΠΎ Π±Ρ ΡΠ΅ΡΠΊΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠ΅ΡΡΡΠΈΠ½ΡΠΊΠΈΡ ΠΎΠΊΠΎΠ½ ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΠ°Π·Π°ΡΡ WS_CLIPSIBLINGS ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΎΠΊΠ½Π°.
Π΅ΡΠ»ΠΈ Π΄Π»Ρ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΎΠΊΠ½Π° Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΊΡΡΠ° Π²Π²ΠΎΠ΄Π° (ΠΎΡ ΠΌΡΡΠΈ ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ), ΡΠΎ Π²ΡΠ΅ ΡΠΎΠΎΡΠ΅Π½ΠΈΡ Π²Π²ΠΎΠ΄Π° Π±ΡΠ΄ΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Ρ ΠΎΠΊΠ½Ρ-ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ.
ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΏΠΎΠ²Π΅ΡΡ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΎΠΊΠ½Π°.
ΠΡΠ»ΠΈ ΠΡ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΎΠ³ΠΎ, ΡΠΎ ΠΠ°ΠΌ Π½Π°Π΄ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΈΠ»Ρ WS_CLIPCHILDREN ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠΊΠ½Π°_ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ.
ΠΠ½Π°Ρ Ρ Π΅Π½Π΄Π» Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΎΠΊΠ½Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Ρ Π΅Π½Π΄Π» ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, Π΅ΡΠ»ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π΄Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ:
HWND GetParent (hwndChild);
HWND GetWindowWord (hwndChild, GWW_PARENT);
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΈΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠΊΠ½Π°. ΠΠ±ΡΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΌΡΡΠΈ ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΈΠ»Ρ WS_DISABLED Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π±Ρ ΡΡΠΎ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ. ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΠ΅ΡΠ°ΡΡ ΠΈΠ»ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
BOOL EnableWindow (hWnd, bEnable);
ΠΡΠΎΡΠΎΠΉ ΡΡΠΈΠ»Ρ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π΄ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ — WS_VISIBLE — Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΠ΅ ΠΎΠΊΠ½ΠΎ. ΠΡΠ»ΠΈ Π΅Π³ΠΎ Π½Π΅ ΡΠΊΠ°Π·Π°ΡΡ, ΡΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΌ. ΠΠΎΠ·ΠΆΠ΅ ΠΎΠΊΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Π²ΠΈΠ΄ΠΈΠΌΡΠΌ ΠΈΠ»ΠΈ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ:
BOOL ShowWindow (hWnd, SW_HIDE);
BOOL ShowWindow (hWnd, SW_SHOW);
ΠΠΊΠ½Π° ΡΠ°ΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΌΠΈ, Π΅ΡΠ»ΠΈ ΠΏΡΠΈ ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ (ΠΈΠ»ΠΈ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ) ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΌΠ΅Π½ΡΡΡ ΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΈ ΡΡΠΎΠΌ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π°Π΄ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΌ ΠΎΠΊΠ½ΠΎΠΌ ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Π΅Π³ΠΎ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ. ΠΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ»ΡΡΡΠ°Π΅Ρ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΈ ΡΡΠΊΠΎΡΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
Π‘ΡΠΈΠ»Ρ ΠΎΠΊΠ½Π° Π²Π»ΠΈΡΠ΅Ρ, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ, ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π΅Π³ΠΎ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄, Π° ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠΊΠ½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ. ΠΠΊΠΎΠ½Π½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΎΠΊΠΎΠ½, Π° ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ. ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΌΡ ΡΠ°ΠΌΠΈ ΠΎΠΏΠΈΡΡΠ²Π°Π»ΠΈ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΊΠ»Π°ΡΡ ΠΎΠΊΠΎΠ½ ΠΈ Π·Π°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈ ΠΎΠΊΠ½ΠΎ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠ΅Π΅ ΡΡΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ.
Π Windows ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΎΠΊΠΎΠ½, ΠΊΠΎΡΠΎΡΡΠΌ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π‘Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ — ΠΏΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΎΠΊΠ½Π° ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΈΠ»Ρ ΠΊΠ»Π°ΡΡΠ° CS_GLOBALCLASS. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Windows ΡΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΊΠ½Π° ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΠΠ°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΊΠ»Π°ΡΡΠΎΠ² Windows. Π‘Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
BOOL UnregisterClass (lpszClassName, hInstance);
ΠΡΠΎΠΌΠ΅ ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΎΠΊΠΎΠ½, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, Windows Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΎΠΊΠΎΠ½.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΎΠΊΠΎΠ½
Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π°ΡΡΠΎΠ² Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΎΠΊΠΎΠ½, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Windows. ΠΠΊΠ½Π° ΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ «ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ» — ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ (scroll bars), ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΡ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ° ΠΈ ΠΏΡ.
ΠΠ±ΡΡΠ½ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΠΎ ΡΡΠΈΠ»tΠ΅ΠΌ WS_VISIBLE ΠΈ, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ, — WS_CHILD. Π§Π°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠΈΠ»Ρ WS_BORDER. ΠΠ»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ ΡΡΠΈΠ»Ρ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ, ΡΡΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠ·Π²Π΅ΡΠ°ΡΡΡΡ ΠΎ ΡΠ°ΠΊΠΈΡ ΡΠΎΠ±ΡΡΠΈΡΡ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΎΠΊΠ½Π°, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΡΠ΅ΡΡ ΡΠΎΠΊΡΡΠ° Π²Π²ΠΎΠ΄Π°. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΡΠΈΠ»Ρ ΠΎΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° _NOTIFY, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, LBS_NOTIFY.
ΠΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΎΠΊΠ½Π°, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ, ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ:
ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΡΡΠ»Π°Π΅Ρ Π΄ΠΎΡΠ΅Π½Π΅ΠΌΡ ΠΎΠΊΠ½Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ, ΡΠ°Π²Π½ΡΠΌΠΈ ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ WM_USER. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΎΠΊΠΎΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΠ²ΠΎΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ΠΈ ΡΠ΅Π°Π³ΠΈΡΡΡΡ. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π΅ΡΠ½ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ SendMessage Π²ΠΌΠ΅ΡΡΠΎ PostMessage.
Π΄ΠΎΡΠ΅ΡΠ½Π΅Π΅ ΠΎΠΊΠ½ΠΎ ΠΏΠΎΡΡΠ»Π°Π΅Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΎΠΊΠ½Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_COMMAND, ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²:
wPar — ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΎΠΊΠ½Π°
LOWORD (lPar) — Ρ Π΅Π½Π΄Π» Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΎΠΊΠ½Π°
HIWORD (lPar) — ΠΊΠΎΠ΄ ΠΈΠ·Π²Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄ ΠΈΠ·Π²Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Ρ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ. ΠΠΎΡΡΠ»ΠΊΠ° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ·Π²Π΅ΡΠ΅Π½ΠΈΠΉ ΠΎΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΎΠΊΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Π° — Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ???_NOTIFY ΡΡΠΈΠ»Ρ. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΎΠΊΠΎΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΠ²ΠΎΠΈ ΠΊΠΎΠ΄Ρ ΠΈΠ·Π²Π΅ΡΠ΅Π½ΠΈΡ.
Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ²Π΅ΡΠΎΠΌ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΎΠΊΠ½Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_CTLCOLOR, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΡΠ»Π°ΡΡΡΡ Π²ΡΠ΅ΠΌΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ ΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΌ.
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ
ΠΠ°ΡΠ½Π΅ΠΌ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° — ΠΊΠ»Π°ΡΡΠ° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². Π ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ («ΠΏΡΡΡΡΠ΅» ΠΈ Π·Π°ΠΊΡΠ°ΡΠ΅Π½Π½ΡΠ΅), Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ ΡΠ΅ΠΊΡΡ ΠΈ ΠΈΠΊΠΎΠ½ΠΊΠΈ, Π½Π°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΎΠΊΠ½Π΅. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΊΠ½Π° Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΡ ΠΌΡΡΠΈ ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠΊΡΡΠ° Π²Π²ΠΎΠ΄Π°.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ° «STATIC», ΠΈ Π·Π°Π΄Π°ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠΉ ΡΡΠΈΠ»Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. Π’Π°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠΈΠ»Π΅ΠΉ:
SS_BLACKRECT — ΡΠ΅ΡΠ½ΡΠΉ Π·Π°ΠΊΡΠ°ΡΠ΅Π½Π½ΡΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ
SS_BLACKFRAME — ΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°
SS_GRAYRECT — ΡΠ΅ΡΡΠΉ Π·Π°ΠΊΡΠ°ΡΠ΅Π½Π½ΡΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ
SS_GRAYFRAME — ΡΠ΅ΡΡΠΉ ΠΊΠΎΠ½ΡΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°
SS_WHITERECT — Π±Π΅Π»ΡΠΉ Π·Π°ΠΊΡΠ°ΡΠ΅Π½Π½ΡΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ
SS_WHITEFRAME — Π±Π΅Π»ΡΠΉ ΠΊΠΎΠ½ΡΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°
Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ°.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ — ΠΏΠΈΠΊΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΠΈΠΊΠΎΠ½ΠΊΡ), ΡΠΊΠ°Π·Π°Π² ΡΡΠΈΠ»Ρ SS_ICON. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π° Π·Π°Π΄Π΅ΡΡΡ ΠΈΠΌΡ ΡΠ΅ΡΡΡΡΠ° ΡΠΈΠΏΠ° ICON, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π Π°Π·ΠΌΠ΅ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΈΠΊΠΎΠ½ΠΊΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΠ°ΠΌΠΈ.
ΠΡΠ»ΠΈ Π½Π°ΠΌ Π½Π°Π΄ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΈΠΊΠΎΠ½ΠΊΡ Π½Π° Π΄ΡΡΠ³ΡΡ, ΡΠΎ Π½Π°Π΄ΠΎ ΡΡΠΎΠΌΡ Π΄ΠΎΡΠ΅ΡΠ½Π΅ΠΌΡ ΠΎΠΊΠ½Ρ ΠΏΠΎΡΠ»Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ (STM_SETICON, hIcon, 0L), Π° Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ·Π½Π°ΡΡ Ρ Π΅Π½Π΄Π» ΠΈΠΊΠΎΠ½ΠΊΠΈ, ΡΠΎ Π½Π°Π΄ΠΎ ΠΏΠΎΡΠ»Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ (STM_GETICON, 0, 0L). ΠΠ±Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Ρ Π΅Π½Π΄Π» ΠΈΠΊΠΎΠ½ΠΊΠΈ.
Π§Π°ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄ΡΡΠ³Π°Ρ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° — ΡΠ΅ΠΊΡΡ. ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠΊΠ½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΠΉ ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ²Π΅Π΄Π΅Π½ Π² ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΡΠΎΡΠΊΠ°Ρ ΠΈ Π²ΡΡΠΎΠ²Π½Π΅Π½ Π½Π° Π»Π΅Π²ΡΡ ΠΈΠ»ΠΈ ΠΏΡΠ°Π²ΡΡ Π³ΡΠ°Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ΅Π½ΡΡΠΈΡΠΎΠ²Π°Π½, ΡΡΠΎ Π·Π°Π΄Π°Π΅ΡΡΡ ΡΡΠΈΠ»Π΅ΠΌ ΠΎΠΊΠ½Π°:
SS_SIMPLE, SS_LEFT, SS_LEFTNOWORDWRAP, SS_RIGHT, SS_CENTER
ΠΡΠΈ ΡΡΠΎΠΌ Π½Π°Π΄ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΡΠΈΠ»Ρ SS_NOPREFIX; ΠΠ±ΡΡΠ½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΠ· & ΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠ½ΡΡΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ». ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ΄ΠΎΠ±Π½ΠΎ — Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΠΉ ΡΠ΅ΠΊΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ (Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ & ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ Π² ΡΡΡΠΎΠΊΠ΅ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ»). ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π±Ρ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ & Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠ΅ΡΠΈΠΊΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠΈΠ»Ρ SS_NOPREFIX.
ΠΠ½ΠΎΠΏΠΊΠΈ
Π‘Π°ΠΌΡΠΉ «Π±ΠΎΠ³Π°ΡΡΠΉ» ΠΊΠ»Π°ΡΡ — ΠΊΠ»Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠΊΠ½Π°, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠ΅Π³ΠΎ ΡΡΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ Π½Π°Π΄ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ° «BUTTON». ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΠ½ΠΎΠΏΠΎΠΊ (Π½ΠΎ Π½Π΅ Π²ΡΠ΅) ΡΠ²Π»ΡΡΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ (ΡΠΎ Π΅ΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π°). ΠΠ±ΡΡΠ½ΠΎ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠΎΡΡΠ»Π°ΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΎΠΊΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ΄ ΠΈΠ·Π²Π΅ΡΠ΅Π½ΠΈΡ — BN_CLICKED, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ° Π±ΡΠ»Π° Π½Π°ΠΆΠ°ΡΠ°. ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ΄Ρ ΠΈΠ·Π²Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ (BN_???) ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠ°ΡΡΠ½ΠΎΠΌΡ ΡΠ»ΡΡΠ°Ρ ΠΊΠ½ΠΎΠΏΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Windows 3.1.
Π ΡΡΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²:
BS_PUSHBUTTON ΠΈ BS_DEFPUSHBUTTON ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ «Π½Π°ΠΆΠ°ΡΡ». ΠΠ°ΠΆΠΈΠΌΠ°ΡΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠΌ, ΠΈΠ»ΠΈ ΠΌΡΡΠΊΠΎΠΉ. Π‘ΡΠΈΠ»Ρ BS_DEFPUSHBUTTON ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΊΠ½ΠΎΠΏΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°ΠΆΠΈΠΌΠ°ΡΡΡΡ ΠΊΠ»Π°Π²ΠΈΡΠ΅ΠΉ Enter, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ Π΄ΡΡΠ³ΠΎΠΌΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
BS_CHECKBOX ΠΈ BS_AUTOCHECKBOX ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΡΠ»Π°ΠΆΠΎΠΊ — ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ° ΠΈ ΡΡΡΠΎΠΊΠΈ ΡΠ΅ΠΊΡΡΠ°. Π ΠΊΠ²Π°Π΄ΡΠ°ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ ΠΊΡΠ΅ΡΡΠΈΠΊ (check mark) — ΡΠΎ Π΅ΡΡΡ ΡΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ «Π΄Π²ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΡΠΌ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΌ» — ΠΎΡΠΌΠ΅ΡΠ΅Π½/Π½Π΅ΠΎΡΠΌΠ΅ΡΠ΅Π½.
BS_AUTOCHECKBOX ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ»Π°ΠΆΠΊΠ° ΡΠ΅ΠΌ, ΡΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² Π΄ΡΡΠ³ΠΎΠ΅ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° Π½Π΅Π³ΠΎ, Π° Π΄Π»Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ BS_CHECKBOX Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°ΠΌΠΈ ΠΏΠΎΠ΄Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
BS_3STATE ΠΈ BS_AUTO3STATE ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΠ»Π°ΠΆΠΎΠΊ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π² ΡΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΡ — ΠΎΡΠΌΠ΅ΡΠ΅Π½/Π½Π΅ΠΎΡΠΌΠ΅ΡΠ΅Π½/Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ (Π² Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈ ΠΌΡΡΠΈ ΠΈ ΡΠΈΡΡΠ΅ΡΡΡ ΡΠ΅ΡΡΠΌ. ΠΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΈ Π²ΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ).
BS_RADIOBUTTON ΠΈ BS_AUTORADIOBUTTON ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ (ΡΠ°Π΄ΠΈΠΎ_ΠΊΠ½ΠΎΠΏΠΊΡ) — ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΏΠΎΡ ΠΎΠΆΠΈΠΉ Π½Π° ΡΠ»Π°ΠΆΠΎΠΊ, Π½ΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ° ΡΠΈΡΡΠ΅ΡΡΡ ΠΊΡΡΠΆΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π° ΠΆΠΈΡΠ½Π°Ρ ΡΠΎΡΠΊΠ°. ΠΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Π³ΡΡΠΏΠΏΠ΅ Π΄ΡΡΠ³ΠΈΡ ΡΠ°Π΄ΠΈΠΎ ΠΊΠ½ΠΎΠΏΠΎΠΊ — ΠΏΡΠΈΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΠΆΠ°ΡΠ°, Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΡΠΏΡΡΠ΅Π½Ρ (ΠΊΠ°ΠΊ ΡΠ΅Π»Π΅ΠΊΡΠΎΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π² ΡΠ°Π΄ΠΈΠΎΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ΅).
BS_GROUPBOX ΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΡΡ ΡΠ°ΠΌΠΊΡ, Π² Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ²Π΅Π΄Π΅Π½ ΡΠ΅ΠΊΡΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΎΠ΄Π½Ρ Π³ΡΡΠΏΠΏΡ. Π₯ΠΎΡΡ GroupBox ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ, Π½ΠΎ ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π° — ΡΠΎ Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
ΠΠ½ΠΎΠΏΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ 5 ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ:
BM_SETCHECK nCheck 0L
ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ:
0 — Π½Π΅ΠΎΡΠΌΠ΅ΡΠ΅Π½Π°
1 — ΠΎΡΠΌΠ΅ΡΠ΅Π½Π°
2 — Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Π° (ΡΠΎΠ»ΡΠΊΠΎ BS_3STATE ΠΈ BS_AUTO3STATE)
BM_SETSTATE nState 0L
ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ
0 — Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅
1 — Π²ΡΠ΄Π΅Π»Π΅Π½Π° (ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Π² «Π½Π°ΠΆΠ°ΡΠΎΠΌ» ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ)
BM_SETSTYLE wStyle bRedraw & 0
ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΈΠ»Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ. wStyle ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠ΅ΠΉ BS_??? ΡΡΠΈΠ»Π΅ΠΉ, Π° bRedraw ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, Π½Π°Π΄ΠΎ Π»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ.
BM_GETCHECK 0 0L
BM_GETSTATE 0 0L
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
Π‘ΠΏΠΈΡΠΊΠΈ
ΠΡΠΎΡΡΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΡ LISTBOX. ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΡΡΠΎΠΊ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π‘ΠΏΠΈΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΈΠ»ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ, ΡΡΡΠΎΠΊΠΈ Π² Π½Π΅ΠΌ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΈΠ»ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Ρ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ.
Π‘ΠΏΠΈΡΠΎΠΊ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ Π·Π΄Π΅ΡΡ Π±ΡΠ΄ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π»ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ .
LB_RESETCONTENT 0 0L
ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°.
LB_ADDSTRING 0 lpszString
Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΡΠΎΠΊΡ Π² ΠΊΠΎΠ½Π΅Ρ ΡΠΏΠΈΡΠΊΠ°
LB_FINDSTRING nIndexStart lpszString
Π½Π°ΠΉΡΠΈ Π½ΡΠΆΠ½ΡΡ ΡΡΡΠΎΠΊΡ Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΅Π΅ ΠΈΠ½Π΄Π΅ΠΊΡ
LB_DELETESTRING nIndex 0L
ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΡΠΎΠΊΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°
LB_GETTEXT nIndex lpsBuffer
ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΡΡΠΎΠΊΡ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ nIndex Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π΅Π΅ Π² ΡΠΊΠ°Π·Π°Π½ΠΎΠΌ Π±ΡΡΠ΅ΡΠ΅.
LB_GETCURSEL 0 0
ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°
LB_DIR nAttr lpszMask
Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ ΠΈ Π΄ΠΈΡΠΊΠΎΠ². ΠΠ½ΠΎΠ³Π΄Π° ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΠ΅ΠΉ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅: DlgDirList ΠΈ DlgDirSelect.
ΠΠΎΡΡΠ»Π°Π΅ΠΌΡΠ΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΎΠΊΠ½Ρ ΠΊΠΎΠ΄Ρ ΠΈΠ·Π²Π΅ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠΎΠ±ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΊΠ°:
LBN_ERRSPACE — ΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π΄ΡΠ΅ΠΉ ΠΎΡΠΈΠ±ΠΊΠ΅, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ Ρ Π½Π΅Ρ Π²Π°ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ;
LBN_KILLFOCUS ΠΈ LBN_SETFOCUS — ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ΅ΡΠ΅ ΡΠΎΠΊΡΡΠ° Π²Π²ΠΎΠ΄Π°;
LBN_DBLCLK — ΠΎ Π΄Π²ΠΎΠΉΠ½ΠΎΠΌ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ ΠΌΡΡΠΈ;
LBN_SELCHANGE — ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°;
LBN_SELCANCEL — ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠ±ΠΎΡΠ° ΠΏΡΠ΅ΡΠ²Π°Π½, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠΌ ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΎΠΊΠ½Ρ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡ ΡΠΏΠΈΡΠΊΠΎΠ² — ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ, ΡΠΎΡΡΠΎΡΡΠΈΠ΅ ΠΈΠ· Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΎΠΊΠΎΡΠΊΠ° ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΈ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°, ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ Π½ΠΈΠΌ. ΠΡΠΈ ΡΠΏΠΈΡΠΊΠΈ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ ΠΊ ΠΊΠ»Π°ΡΡΡ COMBOBOX. ΠΡΠ΄Π΅Π»ΡΡΡ ΡΡΠΈ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΏΠΈΡΠΊΠΎΠ², ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΡ Π΅Π³ΠΎ ΡΡΠΈΠ»Π΅ΠΌ:
ΠΏΡΠΎΡΡΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ — CBS_SIMPLE — ΠΊΠΎΠ³Π΄Π° ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΈ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π²ΠΈΠ΄Π½Ρ;
Π²ΡΠΏΠ°Π΄Π°ΡΡΠΈΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ — CBS_DROPDOWN — ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π²ΠΈΠ΄ΠΈΠΌΠΎ ΠΎΠΊΠΎΡΠΊΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ° ΡΠΏΡΠ°Π²Π°, ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ΄ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠΌ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ (Π²ΡΠΏΠ°Π΄Π°Π΅Ρ) ΡΠΏΠΈΡΠΎΠΊ.
Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ — CBS_DROPDOWNLIST — Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ CBS_DROPDOWN, Π½ΠΎ ΡΠ΅ΠΊΡΡ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½.
ΠΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΡΠΏΠΈΡΠΎΠΊ, Π½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΠ°ΠΌ Π½Π°Π΄ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΌΠΈΠΌ, ΡΠ±Π΅Π΄ΠΈΠ²ΡΠΈΡΡ, ΡΡΠΎ ΡΠ΅ΠΊΡΡ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ Π½Π΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΡΠΏΠΈΡΠΊΠ΅, Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅Π³ΠΎ ΠΊ ΡΠΏΠΈΡΠΊΡ.
Π’Π°ΠΊΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΡΠΈΠ»Ρ CBS_OEMCONVERT, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΡ Π² Π½Π΅Π³ΠΎ ΡΡΡΠΎΠΊ ΠΈΠ· OEM Π² ANSI, ΠΈ ΠΊ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ ΠΈΠ· Π½Π΅Π³ΠΎ Π΄Π°Π½Π½ΡΡ .
ΠΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΊΠΎΠ΄ΠΎΠ² ΠΈΠ·Π²Π΅ΡΠ΅Π½ΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠΊΡΡΠ²Π°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ°.
Π Π΅Π΄Π°ΠΊΡΠΎΡ
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΠ΄ΠΎΠ±Π½ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² — ΠΊΠ»Π°ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° EDIT. ΠΠΊΠ½Π°, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΠΊ ΡΡΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΡΡΡΠΎΡΠ½ΡΠ΅, ΡΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΠΊΠΎΡΠΊΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° — Π²Π²ΠΎΠ΄ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Ρ. Π ΡΠ°ΠΊΠΈΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°ΠΌ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠΈΡΠΊ ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½Ρ ΡΠ΅ΠΊΡΡΠ°. Π‘Π°ΠΌΡΠΌ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π²Π΅ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ΅ΠΊΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, ΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΡΡΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ — Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 64K ΠΌΠΈΠ½ΡΡ ΡΠΆΠ΅ Π·Π°Π½ΡΡΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ.
ΠΠ΅ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ΅ΠΊΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ΄Π½Ρ Π΄Π»ΠΈΠ½Π½ΡΡ, Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΡΡΡΡ ΡΡΡΠΎΠΊΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΡΡΠΎΠΊΠΈ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΊΠ°ΡΠ΅ΡΠΊΠΈ.
ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ — ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π½Π° Π²ΡΡ Π΅Π³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΎΠΊΠ½ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ — ΠΌΠ΅Π½Ρ, ΡΡΠ΅Π½ΠΈΠ΅/Π·Π°ΠΏΠΈΡΡ ΡΠ°ΠΉΠ»Π°, ΠΏΠΎΠΈΡΠΊ/Π·Π°ΠΌΠ΅Π½Ρ ΠΈ ΠΏΡ. Π‘ΡΡΠΎΠ³ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ NotePad ΡΠ΄Π΅Π»Π°Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ.
ΠΠΊΠΎΡΠΊΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°, ΡΠΎΠ³Π΄Π° Π΄Π»Ρ Π΅Π³ΠΎ ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
void SetWindowText (hWnd, lpszText);
int GetWindowText (hWnd, lpsBuffer, nMaxCount);
int GetWindowTextLength (hWnd);
ΠΈΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ WM_SETTEXT, WM_GETTEXT ΠΈ WM_GETTEXTLENGTH, ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Win32 ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡ Π² ΠΎΠΊΠ½Π΅, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΠΊΠ½Π°ΠΌΠΈ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΌΠΈ Π΄Π°Π½Π½ΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ.
ΠΠ΄Π½Π°ΠΊΠΎ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΡΠ΅ΠΊΡΡΠ°ΠΌΠΈ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°Π΄ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ:
EM_GETHANDLE 0 0L
Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Ρ Π΅Π½Π΄Π»Π° Π±Π»ΠΎΠΊΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΡΠ΅ΠΊΡΡ;
EM_SETHANDLE hLocal 0L
Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ Ρ Π΅Π½Π΄Π»Π° Π±Π»ΠΎΠΊΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΡΠ΅ΠΊΡΡ;
EM_LIMITTEXT nMaxChars 0L
Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠ΅ΠΊΡΡΠ°;
ΠΠ°ΠΊ Π²ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΎΠΊΠ½Π°, ΠΎΠΊΠ½Π° EDIT ΠΏΠΎΡΡΠ»Π°ΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΎΠΊΠ½Ρ ΠΈΠ·Π²Π΅ΡΠ΅Π½ΠΈΡ ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ ΡΠΎΠ±ΡΡΠΈΡΡ — ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΈΠ·_Π·Π° Π½Π΅Ρ Π²Π°ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΈ ΠΏΠΎΡΠ΅ΡΠ΅ ΡΠΎΠΊΡΡΠ°, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ° ΠΈ ΠΎ «ΠΏΡΠΎΠΊΡΡΡΠΊΠ΅» ΡΠ΅ΠΊΡΡΠ° Π² ΠΎΠΊΠΎΡΠΊΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°.
ΠΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΠΉ Π½Π°ΠΌΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΎΠΊΠΎΠ½ — ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΠΊ ΠΊΠ»Π°ΡΡΡ SCROLLBAR. ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎΠ»ΠΎΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ².
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΌΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ, Π½ΠΎ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΠΎΠ΄Π½Ρ-Π΄Π²Π΅ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΡΠ½ΠΈΠ·Ρ ΠΈ ΡΠΏΡΠ°Π²Π° ΠΎΡ ΠΎΠΊΠ½Π°, ΡΠΎ ΠΏΡΠΎΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠΊΠ½ΠΎ ΡΠΎ ΡΡΠΈΠ»ΡΠΌΠΈ WS_VSCROLL ΠΈ/ΠΈΠ»ΠΈ WS_HSCROLL. ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΠΊΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠΈΡ Π½ΡΠΆΠ½ΡΠ΅ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ. Π£Π΄ΠΎΠ±ΡΡΠ²ΠΎ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π΅ΡΠ΅ ΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΈ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ Π²Π½Π΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠΊΠ½Π°, ΡΠΎ Π΅ΡΡΡ ΠΠ°ΠΌ Π½Π΅ Π½Π°Π΄ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ.
ΠΠ»Ρ ΠΈΠ·Π²Π΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΏΠΎΡΡΠ»Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_VSCROLL ΠΈ WM_HSCROLL Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠ° ΠΏΠΎΠ»ΠΎΡΡ — Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½Π°Ρ ΠΈΠ»ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½Π°Ρ, Π° Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΎΡΠ°ΠΌΠΈ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π‘Π½Π°ΡΠ°Π»Π° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ:
WM_VSCROLL ScrollCode wndScroll & nPos
WM_HSCROLL ScrollCode wndScroll & nPos
Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ wPar ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΊΠΎΠ΄, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Ρ ΠΏΠΎΠ»ΠΎΡΠΎΠΉ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ, ΡΡΠ°ΡΡΠ΅Π΅ ΡΠ»ΠΎΠ²ΠΎ lPar ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Ρ Π΅Π½Π΄Π» ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ, Π° ΠΌΠ»Π°Π΄ΡΠ΅Π΅ ΡΠ»ΠΎΠ²ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ «Π΄Π²ΠΈΠΆΠΊΠ°» ΠΏΠΎΠ»ΠΎΡΡ.
ΠΠΎΠ΄Ρ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
ΠΠ»Ρ Π²ΡΠ΅Ρ ΠΊΠΎΠ΄ΠΎΠ², ΠΊΡΠΎΠΌΠ΅ SB_THUMBTRACK ΠΈ SB_THUMBPOSITION, ΠΌΠ»Π°Π΄ΡΠ΅Π΅ ΡΠ»ΠΎΠ²ΠΎ lPar Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ. ΠΠΎΠ΄Ρ SB_THUMBTRACK ΠΏΠΎΡΡΠ»Π°ΡΡΡΡ ΠΊΠΎΠ³Π΄Π° ΠΡ, «Π·Π°ΡΠ΅ΠΏΠΈΠ²» ΠΌΡΡΠΊΠΎΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ, Π½Π°ΡΠΈΠ½Π°Π΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ Π΅Π³ΠΎ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΠ½ΠΈ ΠΏΠΎΡΡΠ»Π°ΡΡΡΡ ΡΠ°ΠΊ ΡΠ°ΡΡΠΎ, ΠΊΠ°ΠΊ ΡΡΠΏΠ΅Π²Π°ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ — ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΡ ΠΠ°Ρ ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΄Π²ΠΈΠΆΠΊΠ°. ΠΠΎΠ΄ SB_THUMBPOSITION ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΡ ΠΎΡΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΌΡΡΠΈ Π΄Π»Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π²ΠΈΠΆΠΊΠ° Π² Π½ΠΎΠ²ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅.
ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΈΡ ΠΊΠΎΠ΄ΠΎΠ² Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΎ Π΅ΡΠ΅ Π΄Π²Π° — SB_TOP ΠΈ SB_BOTTOM, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΡΡΠ»Π°ΡΡΡΡ ΠΏΠΎΠ»ΠΎΡΠΎΠΉ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ. Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΌΡΡΡΡ, ΡΠΎΠΊΡΡΠ° Π²Π²ΠΎΠ΄Π° ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ»ΠΎΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΎΠΉ.
Π§Π°ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΡΠ»Π°Π΅Ρ ΡΠ°ΠΌΠΎ ΡΠ΅Π±Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ «ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ» ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ. ΠΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΎΠΊΠ½Π° ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠ΅Π½Π° Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΡ WM_VSCROLL ΠΈ WM_HSCROLL. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠ»Π°Π²ΠΈΡΠ°ΠΌ Home ΠΈ End Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΊΠΎΠ΄Ρ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΊΠΎΠ΄Ρ SB_TOP ΠΈ SB_BOTTOM.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ΄ΡΠΈ ΠΈΠ½ΡΠΌ ΠΏΡΡΠ΅ΠΌ, ΡΠΎΠ³Π΄Π° ΡΡΠΈ Π΄Π²Π° ΠΊΠΎΠ΄Π° ΠΠ°ΠΌ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ.
ΠΡΠΈΠ²Π΅Π΄Π΅ΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_KEYDOWN ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ:
UINT n;
switch (wMsg) {
…
case WM_KEYDOWN:
switch (wPar) {
case VK_HOME: n= SB_TOP; goto post_vscroll;
case VK_END: n= SB_BOTTOM; goto post_vscroll;
case VK_PRIOR: n= SB_PAGEUP; goto post_vscroll;
case VK_NEXT: n= SB_PAGEDOWN; goto post_vscroll;
case VK_DOWN: n= SB_LINEDOWN; goto post_vscroll;
case VK_UP: n= SB_LINEUP;
post_vscroll:
PostMessage (hWnd, WM_VSCROLL, n, 0L);
break;
default: break;
}
return 0;
…
}
ΠΠ°Π»Π΅Π΅ Π½Π°Ρ Π±ΡΠ΄ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΎΡΠ°ΠΌΠΈ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ. ΠΠ°ΠΆΠ΄Π°Ρ ΠΏΠΎΠ»ΠΎΡΠ° ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΠ΅ΡΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ, ΡΠΎ Π΅ΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π΄Π²ΠΈΠΆΠΊΠ°. ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ Π΅Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π² 0.100;
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ·Π½Π°ΡΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ:
void GetScrollRange (hWnd, nBar, lpnMin, lpnMax);
int SetScrollRange (hWnd, nBar, nMin, nMax, bRepaint);
Π£Π΄ΠΎΠ±Π½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΡΠ°Π²Π½ΡΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΈΡΠ»Ρ ΡΡΡΠΎΠΊ Π² ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌΠΎΠΌ ΡΠ°ΠΉΠ»Π΅.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΠΉ ΡΡΠ΅Π±ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ hWnd ΠΈ nBar. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ hWnd ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π΄Π°Π²Π°ΡΡ Ρ Π΅Π½Π΄Π» ΠΎΠΊΠ½Π°-ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, ΡΠΎΠ³Π΄Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° nBar ΠΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊΠ°Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΠΏΠΎΠ»ΠΎΡΠ° ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΈΠΌΠ΅Π΅ΡΡΡ Π² Π²ΠΈΠ΄Ρ: SB_VERT ΠΈΠ»ΠΈ SB_HORZ. Π Π΅ΡΠ»ΠΈ hWnd ΡΠ²Π»ΡΠ΅ΡΡΡ Ρ Π΅Π½Π»ΠΎΠΌ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ, ΡΠΎ ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΠ°Π·Π°ΡΡ nBar ΡΠ°Π²Π½ΡΠΌ SB_CTL.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π²ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π²ΠΈΠΆΠΊΠ° ΠΏΠΎΠ»ΠΎΡΡ ΠΈΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ Π² ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ.
Int GetScrollPos (hWnd, nBar);
int SetScrollPos (hWnd, nBar, nPos, bRepaint);
ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ»ΠΈ ΡΠΏΡΡΡΠ°ΡΡ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ. ΠΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° nBar — SB_BOTH, ΡΠΊΠ°Π·ΡΠ²Π°Ρ, ΡΡΠΎ ΠΎΠ±Π΅ ΠΏΠΎΠ»ΠΎΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΈΠ»ΠΈ ΡΠΊΡΡΠ²Π°ΡΡΡΡ.
Void ShowScrollBar (hWnd, nBar, bShow);
ΠΠΊΠ½Π°, ΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ
ΠΠ»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΎΠΊΠΎΠ½ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠΊΠΎΠ½ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°. ΠΡΠΎ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ (Owner Draw) ΠΎΠΊΠ½Π°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠΎΠ² (ΡΠΎ Π΅ΡΡΡ ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΎΠ»Π½ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΈΡΡΠ½ΠΊΠ°ΠΌΠΈ). Π’ΠΎΡ ΠΆΠ΅ ΡΠΏΠΎΡΠΎΠ± ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ½ΠΊΡΠΎΠ² ΠΌΠ΅Π½Ρ.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π±Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ, ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΡΠΈΠ»Ρ — BS_OWNERDRAW Π΄Π»Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ, LBS_OWNERDRAWFIXED, LBS_OWNERDRAWVARIABLE, CBS_OWNERDRAWFIXED, CBS_OWNERDRAWVARIABLE Π΄Π»Ρ ΡΠΏΠΈΡΠΊΠΎΠ². Π ΡΠ»ΡΡΠ°Π΅ ΡΠΏΠΈΡΠΊΠΎΠ² ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ Π΄Π²Π° Π²ΠΈΠ΄Π° ΡΠΈΡΡΠ΅ΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² — ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ Π²ΡΡΠΎΡΡ (…FIXED) ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΉ Π²ΡΡΠΎΡΡ (…VARIABLE).
ΠΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΠΎΠΊΠ½Π° ΡΠ°ΠΊΠΈΡ ΡΡΠΈΠ»Π΅ΠΉ Π±ΡΠ΄ΡΡ ΠΏΠΎΡΡΠ»Π°ΡΡ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΎΠΊΠ½Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_MEASUREITEM ΠΈ WM_DRAWITEM. ΠΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Ρ ΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΠΈΡ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. (ΠΡΠΈ ΠΆΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅Π½Ρ).
WM_MEASUREITEM nID lpMI
ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ wPar ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΎΠΊΠ½Π°, Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ lPar — Π΄Π°Π»ΡΠ½ΠΈΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡΡΠΊΡΡΡΡ MEASUREITEMSTRUCT, ΠΊΠΎΡΠΎΡΡΡ Π½Π°Π΄ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ.
typedef struct tagMEASUREITEMSTRUCT { /* mi */
UINT CtlType; // ΡΠΈΠΏ ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°
UINT CtlID; // ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ
UINT itemID; // ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° (Π½ΠΎΠΌΠ΅Ρ ΠΏΡΠ½ΠΊΡΠ°)
UINT itemWidth; // ΡΠΈΡΠΈΠ½Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°
UINT itemHeight; // Π²ΡΡΠΎΡΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°
DWORD itemData; // Π΄Π°Π½Π½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°
} MEASUREITEMSTRUCT;
ΠΠΎΠ»Ρ CtlType, CtlID, itemID ΠΈ itemData Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΡΡ Windows, Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
ΠΠΎΠ»Π΅ CtlType ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ :
ODT_BUTTON — ΠΊΠ½ΠΎΠΏΠΊΠ°
ODT_COMBOBOX — ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΎΠΊ
ODT_LISTBOX — ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΎΠΊ
ODT_MENU — ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ΅Π½Ρ
ΠΠΎΠ»Ρ CtlID ΠΈ ItemID ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΎΠΊΠ½Π° ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΎΠΊΠ½Π° (Π΅ΡΠ»ΠΈ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π΅ ΠΎΠΊΠ½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΈΠ»ΠΈ ΡΠΈΡΡΠ΅ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ΅Π½Ρ).
ΠΠΎΠ»Π΅ ItemData ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ Π»ΠΈΠ±ΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π³ΠΎ ΠΎΠΊΠ½Π° (ΠΈΠΌΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ) Π»ΠΈΠ±ΠΎ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Ρ (ΡΠΌ. ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ CB_ADDSTRING, CB_INSERTSTRING, LB_ADDSTRING, LB_INSERTSTRING ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ InsertMenu, AddMenu). ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΠΏΠΎΠ»Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π½Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°/ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
ΠΠ²Π° ΠΏΠΎΠ»Ρ itemHeight ΠΈ itemWidth Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ°ΠΌΠΈ. ΠΡΠΈ ΡΡΠΎΠΌ Π½Π°Π΄ΠΎ ΠΈΠΌΠ΅ΡΡ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΡΡΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_DRAWITEM ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Windows Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ).
WM_DRAWITEM nID lpDI
Π° ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ lPar ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π°Π»ΡΠ½ΠΈΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π½Π° ΡΡΡΡΠΊΡΡΡΡ DRAWITEMSTRUCT, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠ΅.
typedef struct tagDRAWITEMSTRUCT { /* ditm */
UINT CtlType; // ΡΠΈΠΏ ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°
UINT CtlID; // ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ
UINT itemID; // ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° (Π½ΠΎΠΌΠ΅Ρ ΠΏΡΠ½ΠΊΡΠ°)
UINT itemAction; // ΠΈΠ·-Π·Π° ΡΠ΅Π³ΠΎ Π½Π°Π΄ΠΎ ΡΠΈΡΠΎΠ²Π°ΡΡ
UINT itemState; // ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ ΡΠΈΡΠΎΠ²Π°ΡΡ
HWND hwndItem; // Ρ Π΅Π½Π΄Π» ΠΎΠΊΠ½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°
HDC hDC; // Ρ Π΅Π½Π΄Π» ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
RECT rcItem; // ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°Π΄ΠΎ ΡΠΈΡΠΎΠ²Π°ΡΡ
DWORD itemData; // Π΄Π°Π½Π½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°
} DRAWITEMSTRUCT;
ΠΠ±ΡΠ°ΡΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ»Ρ itemAction ΠΈ itemState. ΠΠ½ΠΈ Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ Π΄ΡΠ±Π»ΠΈΡΡΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ itemState ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π° itemAction — ΠΏΡΠΈΡΠΈΠ½Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΊΡΡΠ° ΠΈΠ»ΠΈ Π²ΡΠ±ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΠ»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ Π»ΠΎΠ³ΠΈΠΊΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΡΠ²Π°ΡΡ Π²ΡΠ΅ ΠΎΠΊΠΎΡΠΊΠΎ, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΏΠΎΠ»Π΅ itemState, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅Π΅ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ ΡΠΈΡΠΎΠ²Π°ΡΡ.
ΠΡΠ»ΠΈ Π½Π°Π΄ΠΎ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΈΠΌΠ΅ΡΡΠΈΠΉ ΡΠΎΠΊΡΡ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ
void DrawFocusRect (hDC, lpRect);
ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΈΡΡΠ΅Ρ ΠΏΡΠ½ΠΊΡΠΈΡΠ½ΡΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΈΠΌΠ΅ΡΡΠΈΠΉ ΡΠΎΠΊΡΡ Π²Π²ΠΎΠ΄Π°.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠΎΠΌ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΎΠΊΠΎΠ½
ΠΠΊΠ½Π°, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΎΠΊΠΎΠ½, ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΡ ΡΠ²Π΅ΡΠΎΠΌ. ΠΠ½ ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_CTLCOLOR, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΡΠ΅ΡΠ½Π΅Π΅ ΠΎΠΊΠ½ΠΎ ΠΏΠΎΡΡΠ»Π°Π΅Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½ΡΠΆΠ½ΡΡ ΡΠ²Π΅ΡΠΎΠ².
WM_CTLCOLOR DC CtlType&hwndChild
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
wPar ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Ρ Π΅Π½Π΄Π» ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΌΠ»Π°Π΄ΡΠ΅Π΅ ΡΠ»ΠΎΠ²ΠΎ lPar ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Ρ Π΅Π½Π΄Π» ΡΡΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, Π° ΡΡΠ°ΡΡΠ΅Π΅ — ΡΠΈΠΏ ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°:
CTLCOLOR_BTN, CTLCOLOR_DLG, CTLCOLOR_EDIT, CTLCOLOR_LISTBOX, CTLCOLOR_MSGBOX, CTLCOLOR_SCROLLBAR, CTLCOLOR_STATIC
ΠΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Ρ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ²Π΅ΡΠ° ΡΠ΅ΠΊΡΡΠ°, ΡΠΎΠ½Π°, ΡΠ΅ΠΆΠΈΠΌ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΠ½Π° Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ Π²Π΅ΡΠ½ΡΡΡ Ρ Π΅Π½Π΄Π» ΠΊΠΈΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π·Π°ΠΊΡΠ°ΡΠΊΠΈ ΡΠΎΠ½Π°.
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π½Π΅ Π²ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΠ°ΠΌΠΈ ΠΊΠΈΡΡΡ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ½Π° ΠΏΠΎΠ΄ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ, Π° ΡΠ°ΠΌΠ° ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ΅ΡΡΡ ΠΊΠΈΡΡΡ — ΡΠ°ΠΊ ΡΡΠΎ ΠΠ°Ρ Π²ΡΠ±ΠΎΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ.