Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
DispatchMessage, SetTimer, TimerProc .
ΠΠ²ΠΎΠ΄ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ
SetKeyboardState
Π€ΡΠ½ΠΊΡΠΈΡ SetKeyboardState ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· 256 Π±Π°ΠΉΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΊΠ»Π°Π²ΠΈΡ Π² ΡΠ°Π±Π»ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π²Π²ΠΎΠ΄Π° Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. ΠΡΠΎ ΡΠ° ΠΆΠ΅ ΡΠ°ΠΌΠ°Ρ ΡΠ°Π±Π»ΠΈΡΠ°, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΡΡΠ½ΠΊΡΠΈΠΈ GetKeyboardState ΠΈ GetKeyState . ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ Π² ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅, Π½Π΅ Π²Π»ΠΈΡΡΡ Π½Π° Π²Π²ΠΎΠ΄ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ².
BOOL SetKeyboardState (
LPBYTE lpKeyState // Π°Π΄ΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΊΠΎΠ΄Π°ΠΌΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΠ»Π°Π²ΠΈΡ
);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
lpKeyState - ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° 256-Π±Π°ΠΉΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½ΡΠ»Ρ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ GetLastError .
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ½ΠΊΡΠΈΡ SetKeyboardState ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π° Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, Π½ΠΎ Π½Π΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π° ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ SetKeyboardState Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠΎΠ² NUM LOCK, CAPS LOCK ΠΈΠ»ΠΈ r SCROLL LOCK Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ΅.
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
GetAsyncKeyState, GetKeyboardState, GetKeyState, MapVirtualKey .
ΠΠ±Π»Π°ΡΡΠΈ
CombineRgn
Π€ΡΠ½ΠΊΡΠΈΡ CombineRgn ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ Π΄Π²Π΅ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΡΡΠ΅ΡΡΠ΅ΠΉ. ΠΠ²Π΅ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΡΠ΅ΠΆΠΈΠΌΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.
int CombineRgn (
HRGN hrgnDest , // Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ
HRGN hrgnSrc 1 , // Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ
HRGN hrgnSrc 2 , // Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ
int fnCombineMode // ΡΠ΅ΠΆΠΈΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ
);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
hrgnDest - ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ Π½ΠΎΠ²ΡΡ ΠΎΠ±Π»Π°ΡΡΡ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠΌΠΈ Π΄Π²ΡΠΌΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌΠΈ ΠΎΠ±Π»Π°ΡΡΡΠΌΠΈ (ΠΎΠ±Π»Π°ΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π΄ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ CombineRgn ).
hrgnSrc 1 - ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΡΡ ΠΈΠ· Π΄Π²ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ.
hrgnSrc 2 - ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ Π²ΡΠΎΡΡΡ ΠΈΠ· Π΄Π²ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ.
fnCombineMode - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ΅ΠΆΠΈΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π΄Π²ΡΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ. ΠΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ:
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΠΎΡΡΠ½Π΅Π½ΠΈΠ΅
RGN_AND
Π‘ΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ.
RGN_COPY
Π‘ΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΊΠΎΠΏΠΈΡ ΠΎΠ±Π»Π°ΡΡΠΈ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° hrgnSrc 1 .
RGN_DIFF
ΠΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° hrgnSrc 1 , ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΠΌΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° hrgnSrc 2 .
RGN_OR
Π‘ΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ.
RGN_XOR
Π‘ΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π»ΡΠ±ΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡΠΈΡ ΡΡ ΡΡΠ°ΡΡΠΊΠΎΠ².
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ:
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΠΎΡΡΠ½Π΅Π½ΠΈΠ΅
COMPLEXREGION
ΠΠ±Π»Π°ΡΡΡ ΡΠΎΡΡΠΎΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°
ERROR
ΠΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°
NULLREGION
ΠΡΡΡΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ
SIMPLEREGION
ΠΠ±Π»Π°ΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΌ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠΌ
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΠ±Π»Π°ΡΡΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° hrgnSrc 1 ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π²Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° hrgnDest .
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreatePolyPolygonRgn, CreateRectRgn, CreateRectRgnIndirect, CreateRoundRectRgn .
CreateEllipticRgn
Π€ΡΠ½ΠΊΡΠΈΡ CreateEllipticRgn ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ»Π»ΠΈΠΏΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΠ±Π»Π°ΡΡΡ.
HRGN CreateEllipticRgn (
int nLeftRect , // x -ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° Π²Π΅ΡΡ Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π°
// ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°
int nTopRect , // y - ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° Π²Π΅ΡΡ Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π°
// ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°
int nRightRect , // x -ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π°
// ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°
int nBottomRect // y - ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π°
// ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°
);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
nLeftRect - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ x -ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π° ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΡΠ»Π»ΠΈΠΏΡ.
nTopRect - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ y -ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π° ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΡΠ»Π»ΠΈΠΏΡ.
nRightRect - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ x -ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π° ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΡΠ»Π»ΠΈΠΏΡ.
nBottomRect - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ y -ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π° ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΡΠ»Π»ΠΈΠΏΡ.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠ±Π»Π°ΡΡΠΈ.
Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ NULL .
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠΈΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ, ΡΠΎΡΠΌΡ ΠΈ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΡ ΠΎΠ±Π»Π°ΡΡΠΈ. ΠΠ»ΠΈΠ½Π½ΡΠ΅ ΡΡΠΎΡΠΎΠ½Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΄Π»ΠΈΠ½Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΡΠΈ ΡΠ»Π»ΠΈΠΏΡΠ°; ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΄Π»ΠΈΠ½Ρ ΠΌΠ°Π»ΠΎΠΉ ΠΎΡΠΈ ΡΠ»Π»ΠΈΠΏΡΠ°; ΡΠ΅Π½ΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΈ ΠΌΠ°Π»ΠΎΠΉ ΠΎΡΠ΅ΠΉ.
ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° Π·Π°Π΄Π°ΡΡΡΡ Π² Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ°Ρ .
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
CreateEllipticRgnIndirect, DeleteObject, SelectObject .
CreateEllipticRgnIndirect
Π€ΡΠ½ΠΊΡΠΈΡ CreateEllipticRgnIndirect ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ»Π»ΠΈΠΏΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΠ±Π»Π°ΡΡΡ.
HRGN CreateEllipticRgnIndirect (
CONST RECT * lprc // ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡΡΠΊΡΡΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ
// ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠΈΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ
);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
lprc - ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡΡΠΊΡΡΡΡ ΡΠΈΠΏΠ° RECT , ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΡΠ³Π»ΠΎΠ² ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΡΠ»Π»ΠΈΠΏΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠ±Π»Π°ΡΡΠΈ.
Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ NULL .
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠΈΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ, ΡΠΎΡΠΌΡ ΠΈ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΡ ΠΎΠ±Π»Π°ΡΡΠΈ. ΠΠ»ΠΈΠ½Π½ΡΠ΅ ΡΡΠΎΡΠΎΠ½Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΄Π»ΠΈΠ½Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΡΠΈ ΡΠ»Π»ΠΈΠΏΡΠ°; ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΡΡΠΎΡΠΎΠ½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΄Π»ΠΈΠ½Ρ ΠΌΠ°Π»ΠΎΠΉ ΠΎΡΠΈ ΡΠ»Π»ΠΈΠΏΡΠ°; ΡΠ΅Π½ΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΈ ΠΌΠ°Π»ΠΎΠΉ ΠΎΡΠ΅ΠΉ.
ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° Π·Π°Π΄Π°ΡΡΡΡ Π² Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ°Ρ .
Π‘ΠΌ . ΡΠ°ΠΊΠΆΠ΅
CreateEllipticRgn, DeleteObject, RECT, SelectObject .
CreatePolygonRgn
Π€ΡΠ½ΠΊΡΠΈΡ CreatePolygonRgn ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ.
HRGN CreatePolygonRgn (
CONST POINT * lppt , // ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΡΠ΅ΠΊ
int cPoints , // ΡΠΈΡΠ»ΠΎ ΡΠΎΡΠ΅ΠΊ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅
int fnPolyFillMode // ΡΠ΅ΠΆΠΈΠΌ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°
);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
lppt - ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΡΠΊΡΡΡ ΡΠΈΠΏΠ° POINT , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π²Π΅ΡΡΠΈΠ½Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°. ΠΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π·Π°ΠΌΠΊΠ½ΡΡΡΠΌ. ΠΠ°ΠΆΠ΄Π°Ρ Π²Π΅ΡΡΠΈΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π΄Π°Π½Π° Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·.
cPoints - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΡΠ΅ΠΊ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅.
fnPolyFillMode - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ΅ΠΆΠΈΠΌ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΈΠΊΡΠ΅Π»ΠΈ Π²Ρ ΠΎΠ΄ΡΡ Π² ΠΎΠ±Π»Π°ΡΡΡ. ΠΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ:
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΠΎΡΡΠ½Π΅Π½ΠΈΠ΅
ALTERNATE
ΠΠΎΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ. ΠΠ°ΠΊΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡΡΡ ΠΏΡΡΠ΅ΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π»ΠΈΠ½ΠΈΠΉ Ρ Π½Π΅ΡΠ΅ΡΠ½ΡΠΌΠΈ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ (1, 3, 5 ΠΈ Ρ. Π΄.). ΠΡΡΠ³ΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π΅ Π·Π°ΠΊΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ.
WINDING
Π‘ΠΊΠ²ΠΎΠ·Π½ΠΎΠΉ. Windows Π·Π°ΠΊΡΠ°ΡΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ.
ΠΠ»Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΡΡΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ ΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ SetPolyFillMode .
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠ±Π»Π°ΡΡΠΈ.
Π ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ NULL .
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
CreatePolyPolygonRgn, DeleteObject, POINT, SelectObject, SetPolyFillMode .
CreatePolyPolygonRgn
Π€ΡΠ½ΠΊΡΠΈΡ CreatePolyPolygonRgn ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠ±Π»Π°ΡΡΡ, ΡΠΎΡΡΠΎΡΡΡΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ². ΠΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°.
HRGN CreatePolyPolygonRgn (
CONST POINT * lppt , // ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΡΠ΅ΠΊ
CONST INT * lpPolyCounts , // ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΌΠ°ΡΡΠΈΠ²,