Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΠΌΠΈ ΡΠ°ΠΉΠ» ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌΠΈ Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ°ΡΡΠ΅ΠΉ ΡΠ°ΠΉΠ»Π°
ΠΠΆΠ΅ΡΡΡΠΈ Π ΠΈΡ ΡΠ΅Ρ. Windows Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠ²: ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ Win32 ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ 64-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠΉ Windows /ΠΠ΅Ρ. Ρ Π°Π½Π³Π». — 4-Π΅ ΠΈΠ·Π΄. — Π‘ΠΏΠ±.: ΠΠΈΡΠ΅Ρ; Π.: ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ «Π ΡΡΡΠΊΠ°Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡ», 2008. — 722 Ρ.: ΠΈΠ». ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ»ΠΎ ΡΠ΅ΡΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ΅Π΄Ρ Microsoft Visual Studio 2010 Express, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΠΌΠΈ ΡΠ°ΠΉΠ» ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌΠΈ Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ°ΡΡΠ΅ΠΉ ΡΠ°ΠΉΠ»Π° (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΠΌΠΈ ΡΠ°ΠΉΠ» ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌΠΈ Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ°ΡΡΠ΅ΠΉ ΡΠ°ΠΉΠ»Π°
ΠΠ°Π΄Π°Π½ΠΈΠ΅
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΉ Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΠΈΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ. ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π³Π»Π°Π²Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ°ΠΉΠ» 10 000 — ΠΌΠΈ ΡΡΠ΅Ρ Π±Π°ΠΉΡΠΎΠ²ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΠΏΠΎΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΡΠΌΠΈΡΡΡΡΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠ°ΠΆΠ΄Π°Ρ Π·Π°ΠΏΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ²Π΅Ρ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ RGB ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°ΠΊΡΠ°ΡΠΊΠΈ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ°, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΈΡΡΠ½ΠΊΠ° Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ±Π»Π°ΡΡΡ ΡΠΈΡΡΠ½ΠΊΠ° ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° 100Π§100 ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ². ΠΠ°ΠΏΠΈΡΠΈ ΡΠ°ΠΉΠ»Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π½Π° ΠΌΠ°ΡΡΠΈΡΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΈΡΡΠ½ΠΊΠ° ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π³Π»Π°Π²Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΏΡΠΎΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΈΠΌ ΠΊΠ²Π°Π΄ΡΠ°ΡΡ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΈΡΡΠ½ΠΊΠ°. ΠΠ°Π»Π΅Π΅, ΠΏΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΡΠΈ ΡΠ°Π±ΠΎΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°. ΠΠ΅ΡΠ²ΡΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Π΅Ρ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°ΠΉΠ»Π° Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΏΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΠΏΠΎΠ»Ρ (ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ ΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ°). ΠΡΠΎΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Π΅Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎ Π²ΡΠΎΡΠΎΠΌΡ ΠΏΠΎΠ»Ρ (ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ Π·Π΅Π»Π΅Π½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ°) Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΏΡΠΈ ΡΠ°Π²Π΅Π½ΡΡΠ²Π΅ Ρ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΏΠ΅ΡΠ²ΡΡ ΠΏΠΎΠ»Π΅ΠΉ. Π’ΡΠ΅ΡΠΈΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Π΅Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎ ΡΡΠ΅ΡΡΠ΅ΠΌΡ ΠΏΠΎΠ»Ρ (ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠΈΠ½Π΅Π³ΠΎ ΡΠ²Π΅ΡΠ°) Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΏΡΠΈ ΡΠ°Π²Π΅Π½ΡΡΠ²Π΅ Ρ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΏΠ΅ΡΠ²ΡΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ Π²ΡΠΎΡΡΡ ΠΏΠΎΠ»Π΅ΠΉ. Π£ΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ Π΄Π²ΡΡ ΡΠΎΡΠ΅Π΄Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΏΡΡΠ΅ΠΌ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ Π·Π°ΠΏΠΈΡΡΠΌ ΡΠ°ΠΉΠ»Π° ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΈΠ· ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΏΡΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΡΠΎΡΠ΅Π΄Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ΅ΠΊΡΠΈΡ. ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΡΠ°ΠΉΠ»Π° ΠΈ Π΅Π³ΠΎ ΡΠ°ΡΡΠ΅ΠΉ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. ΠΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΡΡ ΡΠΎΡΠ΅Π΄Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΏΠ°ΡΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ² Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΈΡΡΠ½ΠΊΠ° ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅. ΠΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ»Ρ Π»ΡΡΡΠ΅Π³ΠΎ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ Π·Π° ΡΠ°Π±ΠΎΡΠΎΠΉ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ Π² ΠΈΡ ΡΠ°Π±ΠΎΡΠ΅. Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π΅Π»ΠΈΡΠΈΠ½ΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ Π²ΡΠ½Π΅ΡΠΈΡΠ΅ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
1. ΠΠ½Π°Π»ΠΈΠ· ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ
ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ»ΠΎ ΡΠ΅ΡΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ΅Π΄Ρ Microsoft Visual Studio 2010 Express, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ, ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ.
ΠΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ, Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΏΠ»Π°Π½, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ Π·Π°Π΄Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ.
+ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
+ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ
+ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΠΊΡΠΈΠΈ
+ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ / ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ²Π΅ΡΠΎΠΌ ΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π±ΡΠ΄ΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ WinAPI-ΡΡΠ½ΠΊΡΠΈΠΉ.
2. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ΅ΡΠ΅Π΄ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΡΠΊΡΠΈΠ½ΡΠΎΡΠ° Π²ΡΠΎΡΠΎΠΉ ΠΈ ΡΡΠ΅ΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ Π±ΡΠ»ΠΈ Π²ΡΠΊΠ»ΡΡΠ΅Π½Ρ Π½Π° ΠΏΠ°ΡΡ ΠΌΠΈΠ½ΡΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ, ΡΡΠΎ ΡΠ°ΡΡΡ ΠΊΡΠ°ΡΠ½ΡΡ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ Π±ΡΠ»Π° Π²ΡΡΠ΅ΡΠ½Π΅Π½Π° Π² ΠΏΡΠ°Π²ΡΡ ΡΠ°ΡΡΡ.
1. ΠΠ°Π½Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ / Π²ΡΠΊΠ»ΡΡΠΈΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ
2. ΠΠ°Π½Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ.
3. ΠΠ½ΠΎΠΏΠΊΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ / ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ°Π±ΠΎΡΡ ΡΡΠ°Π·Ρ Π²ΡΠ΅Ρ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²
4. ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 100×100 ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΠ΅Π΅ Ρ ΠΎΠ΄ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ².
5. ΠΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ Ρ ΠΎΠ΄Π° ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΡΠΎΠΊΠ°, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΏΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ RGB-ΡΠ²Π΅ΡΠ°.
6. ΠΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ Ρ ΠΎΠ΄Π° ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΡΠΎΠΊΠ°, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΏΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ RGB-ΡΠ²Π΅ΡΠ°.
7. ΠΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ Ρ ΠΎΠ΄Π° ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΡΠΎΠΊΠ°, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΏΠΎ ΡΡΠ΅ΡΡΠ΅ΠΉ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ RGB-ΡΠ²Π΅ΡΠ°.
3. ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΡΠΎΠ΅ΠΊΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, Ρ.ΠΊ. ΠΊΠΎΠ΄ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½, ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΈ Π½Π΅ Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠΈ Π½Π° ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅.
// course_work027.cpp
#include «stdafx.h»
#include
#include
#include
#include «stdlib.h»;
#include «time.h»;
#define NUM 10 000 // ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ
#define MAX 16 581 375 // ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ RGB-ΡΠ²Π΅ΡΠ° Π² int-ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ
#define Randomize () srand ((unsigned) time (NULL)); // ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ
const short X1 = 270; // ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Ρ ΠΎΠ΄ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ
const short X2 = 370;
const short Y1 = 10;
const short Y2 = 110;
HWND hwnd;
HINSTANCE hInst; // ΠΠ»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
CRITICAL_SECTION cs; // ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ
HDC hdc = NULL; // ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΏΠΎΠ»ΠΎΡΠ½Π° Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
RECT rect; // ΠΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ Π΄Π»Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
bool pause=0; // Π€Π»Π°Π³ ΠΏΠ°ΡΠ·Ρ
int colors[10 001]; // Π¦Π²Π΅Ρ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ
int delay=0; // ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ
// Π£Π΄ΠΎΠ±Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
void ShowMessage (wchar_t* wch) {MessageBoxW (NULL, wch, wch, NULL);
}
// ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π» Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅
int Random (int range_min, int range_max)
{
return (double) rand () / (RAND_MAX + 1) * (range_max — range_min)+ range_min;
}
// ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π» ΠΎΡ 0 Π΄ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
int Random (int range_max)
{
return (double) rand () / (RAND_MAX + 1) * (range_max);
}
// ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠΎ ID
wchar_t* getText (int hItem) {
int length = GetWindowTextLength (GetDlgItem (hwnd, hItem));
if (length > 0)
{
wchar_t* tempChar;
tempChar= (wchar_t*) GlobalAlloc (GPTR, length + 1);
GetDlgItemText (hwnd, hItem, LPWSTR (tempChar), length + 1);
return tempChar;
}
return 0;
}
// ΠΠΎΡΠΎΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ²
HANDLE hThread1 = NULL;
HANDLE hThread2 = NULL;
HANDLE hThread3 = NULL;
// Π€Π»Π°Π³ΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²
bool bThrActive[3];
// ΠΠΎΠ΄ Π²ΡΡ ΠΎΠ΄Π°
DWORD dwExitCode;
APIENTRY WinMain (HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
static wchar_t szAppName[]=L «arbora_course27»;
MSG msg;
WNDCLASSEX wndclass;
hInst = hInstance;
// ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ
InitializeCriticalSection (&cs);
// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΠΎΡΠΎΠΊΠΈ Ρ ΡΠ»Π°Π³ΠΎΠΌ, «Π·Π°ΠΏΡΡΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ»
hThread1 = CreateThread (NULL, 0,&Thread1, NULL, CREATE_SUSPENDED, NULL);
hThread2 = CreateThread (NULL, 0,&Thread2, NULL, CREATE_SUSPENDED, NULL);
hThread3 = CreateThread (NULL, 0,&Thread3, NULL, CREATE_SUSPENDED, NULL);
// ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΠΎΠΊΠ½ΠΎ
wndclass.cbSize = sizeof (wndclass);
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = szAppName;
wndclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
// Π Π΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΠΌ ΠΎΠΊΠ½ΠΎ
RegisterClassEx (&wndclass);
hwnd = CreateWindow (szAppName, L «ΠΡΡΡΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΡΠ±ΠΎΡΠ° Π‘Π΅ΡΠ³Π΅ΠΉ ΠΠ-01Π± (ΠΠ°ΡΠΈΠ°Π½Ρ 27)», WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
500, 300,
NULL, NULL, hInstance, NULL);
ShowWindow (hwnd, nCmdShow);
UpdateWindow (hwnd);
// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΈΠΊΠ» ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}
// ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΎΠ² ΠΏΡΠΈ Π²ΡΡ ΠΎΠ΄Π΅
TerminateThread (hThread1, dwExitCode);
TerminateThread (hThread2, dwExitCode);
TerminateThread (hThread3, dwExitCode);
CloseHandle (hThread1);
CloseHandle (hThread2);
CloseHandle (hThread3);
// Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΊΡΠΈΡ
DeleteCriticalSection (&cs);
return msg. wParam;
}
DWORD APIENTRY Thread1 (PVOID lpParameter)
{
while (true) {
int k=0; // ΠΠ±Ρ ΠΎΠ΄ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΡΠ²Π΅ΡΠΎΠΌ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ
for (int i=0; i<100; ++i)
for (int j=0; j<100; ++j) {
Sleep (delay); // ΠΠ°Π΄Π΅ΡΠΆΠΊΠ°
// ΠΡΠ»ΠΈ ΠΏΠΎΡΠΎΠΊ Π²ΡΠΊΠ»ΡΡΠ΅Π½ ΠΈΠ»ΠΈ ΠΏΠ°ΡΠ·Π° — ΠΏΡΠΎΠΏΡΡΠΊ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ
if (! bThrActive[0] || pause) continue;
// ΠΡ ΠΎΠ΄ Π² ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠ΅ΠΊΡΠΈΡ
EnterCriticalSection (&cs);
// ΠΡΠ²ΠΎΠ΄ΠΈΠΌ Ρ ΠΎΠ΄ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΡΠΎΠΊΠ° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ Π΅ΠΌΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ
SetPixel (hdc, X1+110+j, Y1+i, RGB (155,0,0));
// ΠΡΠΈΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΈΠΏ int ΠΊ COLORREF
COLORREF cl1 = colors[k];
COLORREF cl2 = colors [k+1];
// ΠΡΠ»ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ²Π΅ΡΠ° ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠΎΡΡΠΈΡΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊ ΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ — ΡΠΌΠ΅Π½Π° ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠ°
if (GetRValue (cl1) > GetRValue (cl2))
{
SetPixel (hdc, X1+j, Y1+i, cl2);
SetPixel (hdc, X1+j+1, Y1+i, cl1);
int x = colors[k];
colors[k] = colors [k+1];
colors [k+1] = x;
}
// ΠΡΡ ΠΎΠ΄ ΠΈΠ· ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ
LeaveCriticalSection (&cs);
++k;
}
// ΠΡΠΎΡ ΠΎΠ΄ ΡΠΈΠΊΠ»Π° Π·Π°Π²Π΅ΡΡΠ΅Π½ — ΡΡΠΈΡΠ°Π΅ΠΌ Π·Π°ΠΊΡΠ°ΡΠ΅Π½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ Π΄Π°Π½Π½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ
RECT r;
r.left = X1+110;
r.top = Y1;
r.right = X2+110;
r.bottom = Y2;
InvalidateRect (hwnd,&r, true);
}
}
DWORD APIENTRY Thread2 (PVOID lpParameter)
{
while (true) {
int k=0;
for (int i=0; i<100; ++i) {
for (int j=0; j<100; ++j) {
Sleep (delay);
if (! bThrActive[1]) continue;
EnterCriticalSection (&cs);
SetPixel (hdc, X1+j, Y1+110+i, RGB (0,155,0));
if (! pause) {
COLORREF cl1 = colors[k];
COLORREF cl2 = colors [k+1];
if (GetGValue (cl1) > GetGValue (cl2)) {
SetPixel (hdc, X1+j, Y1+i, cl2);
SetPixel (hdc, X1+j+1, Y1+i, cl1);
int x = colors[k];
colors[k] = colors [k+1];
colors [k+1] = x;
}
}
LeaveCriticalSection (&cs);
++k;
}
}
RECT r;
r.left = X1;
r.top = Y1+110;
r.right = X2;
r.bottom = Y2+110;
InvalidateRect (hwnd,&r, true);
}
}
DWORD APIENTRY Thread3 (PVOID lpParameter)
{
while (true) {
int k=0;
for (int i=0; i<100; ++i) {
for (int j=0; j<100; ++j) {
Sleep (delay);
if (! bThrActive[2]) continue;
EnterCriticalSection (&cs);
SetPixel (hdc, X1+110+j, Y1+110+i, RGB (0,0,155));
if (! pause) {
COLORREF cl1 = colors[k];
COLORREF cl2 = colors [k+1];
if (GetBValue (cl1) > GetBValue (cl2))
{
SetPixel (hdc, X1+j, Y1+i, cl2);
SetPixel (hdc, X1+j+1, Y1+i, cl1);
int x = colors[k];
colors[k] = colors [k+1];
colors [k+1] = x;
}
}
LeaveCriticalSection (&cs);
++k;
}
}
RECT r;
r.left = X1+110;
r.top = Y1+110;
r.right = X2+110;
r.bottom = Y2+110;
InvalidateRect (hwnd,&r, true);
}
}
LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
static HWND hCBThread[3]; // ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²
static HWND hEditDelay; // ΠΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ
static HWND hBtnDelay; // ΠΠ½ΠΎΠΏΠΊΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½ΠΎΠ²ΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ
static HWND hBtnPause; // ΠΠ½ΠΎΠΏΠΊΠ° ΠΏΠ°ΡΠ·Ρ
wchar_t szBuffer[100];
switch (iMsg)
{
case WM_CREATE:
GetClientRect (hwnd,&rect); // Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Padding (ΠΎΡΡΡΡΠΏ Π²Π½ΡΡΡΠΈ ΠΎΠΊΠ½Π°)
rect.top+=10;
rect.bottom-=10;
rect.left+=10;
rect.right-=10;
// Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°
hCBThread[0] = CreateWindow (L «BUTTON», L «ΠΠΎΡΠΎΠΊ 1», BS_AUTOCHECKBOX|WS_CHILD|WS_VISIBLE, rect. left, rect. top, 230, 30, hwnd, (HMENU) 1, hInst, NULL);
hCBThread[1] = CreateWindow (L «BUTTON», L «ΠΠΎΡΠΎΠΊ 2», BS_AUTOCHECKBOX|WS_CHILD|WS_VISIBLE, rect. left, rect. top+25, 230, 30, hwnd, (HMENU) 2, hInst, NULL);
hCBThread[2] = CreateWindow (L «BUTTON», L «ΠΠΎΡΠΎΠΊ 3», BS_AUTOCHECKBOX|WS_CHILD|WS_VISIBLE, rect. left, rect. top+50, 230, 30, hwnd, (HMENU) 3, hInst, NULL);
hEditDelay = CreateWindow (L «EDIT», NULL, WS_CHILD|WS_VISIBLE|WS_BORDER|ES_AUTOHSCROLL|ES_LEFT, rect. left, rect. top+100, 60, 30, hwnd, (HMENU) 12, hInst, NULL);
hBtnDelay = CreateWindow (L «BUTTON», L «Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΡ», WS_CHILD|WS_VISIBLE, rect. left+70, rect. top+100, 160, 30, hwnd, (HMENU) 13, hInst, NULL);
hBtnPause = CreateWindow (L «BUTTON», L «ΠΠ°ΡΠ·Π°», WS_CHILD|WS_VISIBLE, rect. left, rect. top+145, 230, 30, hwnd, (HMENU) 14, hInst, NULL);
// ΠΠΊΡΠΈΠ²Π°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ
SendMessage (hCBThread[0], BM_SETCHECK, 1, 0);
SendMessage (hCBThread[1], BM_SETCHECK, 1, 0);
SendMessage (hCBThread[2], BM_SETCHECK, 1, 0);
for (int i=0; i<3; ++i) bThrActive[i] = true;
for (int i=0; i
colors[10 000]=0;
ResumeThread (hThread1);
ResumeThread (hThread2);
ResumeThread (hThread3);
return 0;
case WM_PAINT:
GetClientRect (hwnd, &rect);
hdc = BeginPaint (hwnd, &ps);
HBRUSH hBrush;
HDC hdc;
hdc = GetDC (hwnd);
hBrush = CreateSolidBrush (RGB (0, 0, 0));
// ΠΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΠΌ ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ²Π΅ΡΠ°
SelectObject (hdc, hBrush);
{
int k=0;
for (int i=0; i<100; ++i)
for (int j=0; j<100; ++j) {
SetPixel (hdc, X1+i, Y1+j, colors [k++]);
}
}
ReleaseDC (hwnd, hdc);
DeleteObject (hBrush);
return 0;
case WM_SIZE:
return 0;
case WM_COMMAND:
switch (LOWORD (wParam)) {
case 1: case 2: case 3:
// ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ / ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°
bThrActive [wParam-1] = (SendMessage (GetDlgItem (hwnd, wParam), BM_GETCHECK, 0, 0) == BST_CHECKED);
break;
case 13: // Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ
delay = _wtoi (getText (12));
break;
case 14:
pause=! pause;
break;
}
return 0;
case WM_DESTROY:
PostQuitMessage (0);
return 0;
}
return DefWindowProc (hwnd, iMsg, wParam, lParam);
}
ΠΡΠ²ΠΎΠ΄Ρ
ΠΡΠΎΡΠ΅ΡΡ (Π·Π°Π΄Π°ΡΠ°) — ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π½Π°Ρ ΠΎΠ΄ΡΡΠ°ΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΡ, Π½ΠΎ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π°Π±ΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΈΠ΄ΡΡΠΈΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ (ΠΏΡΠ΅Π²Π΄ΠΎΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ). ΠΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠ°Π½Π΄. Π ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈ ΡΠΎΠΌΡ ΠΆΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ, ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΡΠΎ ΠΌΠ΅Π½Π΅Π΅ Π²ΡΠ³ΠΎΠ΄Π½ΠΎ, ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ²Π°Π·ΠΈΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π²Π½ΡΡΡΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Ρ ΠΎΠ΄Π½ΠΈΠΌ Π°Π΄ΡΠ΅ΡΠ½ΡΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΠΌ. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²:
Β· Π£ΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ , Π·Π° ΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°.
Β· ΠΡΡΡΡΠΎΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠ°, ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π² 100 ΡΠ°Π·.
Β· ΠΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Ρ.ΠΊ. Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π²Π²ΠΎΠ΄Π° / Π²ΡΠ²ΠΎΠ΄Π°. ΠΡΠΈΠΌΠ΅Ρ: ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ Ρ ΡΡΠ΅ΠΌΡ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡ ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π½Π° Π΄ΠΈΡΠΊ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ.
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Ρ ΠΈΠ·ΡΡΠΈΠ» ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ» Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·Π³ΡΠ°Π½ΠΈΡΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π΄Π°Π½Π½ΡΡ .
Π’Π°ΠΊΠΆΠ΅ Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΡΡ ΠΈ Π½Π°ΡΡΠΈΠ»ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ WinAPI Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΈ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ»ΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠ΅ΡΠ΅Π· Windows.
Π ΠΈΡΠΎΠ³Π΅ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡ, Π½Π°Π³Π»ΡΠ΄Π½ΠΎ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΠΈΠΉ ΡΠ°Π±ΠΎΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π£Π²Π΅ΡΠ΅Π½, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ°
1. Π. Π. ΠΠΎΡΠ΄Π΅Π΅Π². ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ: Π£ΡΠ΅Π±Π½ΠΈΠΊ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ². 2-Π΅ ΠΈΠ·Π΄. — Π‘ΠΠ±.: ΠΠΈΡΠ΅Ρ, 2007. — 416 Ρ.: ΠΈΠ».
2. Π‘. Π. ΠΠ°Π·Π°ΡΠΎΠ². ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ, ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ. ΠΡΠ½ΠΎΠ²Ρ ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠΉ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ: Π£ΡΠ΅Π±.ΠΏΠΎΡΠΎΠ±ΠΈΠ΅. — Π.: ΠΠ£ΠΠΠ¦-ΠΠ ΠΠ‘Π‘, 2007. — 504 Ρ., ΠΈΠ»Π».
3. Π‘. Π. ΠΠ°Π·Π°ΡΠΎΠ², Π. Π. ΠΡΠ΄ΡΠ½ΠΎ, Π. Π. ΠΠΈΡΠΈΡΠ΅Π½ΠΊΠΎ. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠ°ΠΊΡΠΈΠΊΡΠΌ. ΠΠΎΠ΄ ΡΠ΅Π΄. Π‘. Π. ΠΠ°Π·Π°ΡΠΎΠ²Π° — Π.: ΠΠ£ΠΠΠ¦-ΠΠ ΠΠ‘Π‘, 2008. — 464 Ρ., ΠΈΠ»Π».
4. Π. Π. ΠΠ»ΠΈΡΠ΅Ρ, Π. Π. ΠΠ»ΠΈΡΠ΅Ρ. Π‘Π΅ΡΠ΅Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ: Π£ΡΠ΅Π±Π½ΠΈΠΊ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ². 2-Π΅ ΠΈΠ·Π΄. — Π‘ΠΠ±.: ΠΠΈΡΠ΅Ρ, 2008. — 669 Ρ.: ΠΈΠ».
5. Π. Π. ΠΡΡΠ΅Π³ΠΎΠ².
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ. — 2-Π΅ ΠΈΠ·Π΄., ΠΏΠ΅ΡΠ΅ΡΠ°Π±. ΠΈ Π΄ΠΎΠΏ. — Π‘ΠΠ±.: ΠΠ₯Π-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³, 2008. — 1040 Ρ.: ΠΈΠ». — (Π£ΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅)
6. Π₯. Π. ΠΠ΅ΠΉΡΠ΅Π», Π.ΠΠΆ. ΠΠ΅ΠΉΡΠ΅Π», Π. Π . Π§ΠΎΡΠ½Π΅Ρ. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠ½ΠΎΠ²Ρ ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ: Π’ΡΠ΅ΡΡΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅. ΠΠ΅Ρ. Ρ Π°Π½Π³Π». — Π.: ΠΠΠ «ΠΠΈΠ½ΠΎΠΌ-ΠΡΠ΅ΡΡ», 2006 Π³. — 1024 Ρ.: ΠΈΠ».
7. Π₯. Π. ΠΠ΅ΠΉΡΠ΅Π», Π.ΠΠΆ. ΠΠ΅ΠΉΡΠ΅Π», Π. Π . Π§ΠΎΡΠ½Π΅Ρ. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ. Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ΅ΡΠΈ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ: Π’ΡΠ΅ΡΡΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅. ΠΠ΅Ρ. Ρ Π°Π½Π³Π». — Π.: ΠΠΠ «ΠΠΈΠ½ΠΎΠΌ-ΠΡΠ΅ΡΡ», 2006 Π³. — 704 Ρ.: ΠΈΠ».
8. Π. Π’Π°Π½Π΅Π½Π±Π°ΡΠΌ. Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ. 2-Π΅ ΠΈΠ·Π΄. — Π‘ΠΠ±.: ΠΠΈΡΠ΅Ρ, 2006. — 1038 Ρ.: ΠΈΠ».
9. Π. ΠΡΠΊΠΎΠ½, Π’. Π₯Π°ΡΡΠΈΡ. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ. — Π‘ΠΠ±.: ΠΠΈΡΠ΅Ρ; ΠΠΈΠ΅Π²: ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ Π³ΡΡΠΏΠΏΠ° BHV, 2004. — 800 Ρ.: ΠΈΠ».
10. ΠΠΆΠ΅ΡΡΡΠΈ Π ΠΈΡ ΡΠ΅Ρ. Windows Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠ² (ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Win32 API Π΄Π»Ρ WindowsNT 3.5 ΠΈ Windows 95) /ΠΠ΅Ρ. Ρ Π°Π½Π³Π». — Π.: ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΎΡΠ΄Π΅Π» «Π ΡΡΡΠΊΠ°Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡ» Π’ΠΠ «ChannelTradingLtd.», 1995. — 720 Ρ.: ΠΈΠ».
11. ΠΠΆΠ΅ΡΡΡΠΈ Π ΠΈΡ ΡΠ΅Ρ. Windows Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠ²: ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ Win32 ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ 64-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠΉ Windows /ΠΠ΅Ρ. Ρ Π°Π½Π³Π». — 4-Π΅ ΠΈΠ·Π΄. — Π‘ΠΏΠ±.: ΠΠΈΡΠ΅Ρ; Π.: ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ «Π ΡΡΡΠΊΠ°Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡ», 2008. — 722 Ρ.: ΠΈΠ».
12. Π§. ΠΠ΅ΡΠ·ΠΎΠ»Π΄. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π»Ρ Windows 95. Π’ΠΎΠΌ 1: ΠΏΠ΅Ρ. Ρ Π°Π½Π³Π». — Π‘ΠΠ±.: BHV — Π‘Π°Π½ΠΊΡ-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³, 1997. — 752 Ρ., ΠΈΠ».
13. Π§. ΠΠ΅ΡΠ·ΠΎΠ»Π΄. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π»Ρ Windows 95. Π’ΠΎΠΌ 2: ΠΏΠ΅Ρ. Ρ Π°Π½Π³Π». — Π‘ΠΠ±.: BHV — Π‘Π°Π½ΠΊΡ-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³, 1997. — 368 Ρ., ΠΈΠ».