ΠΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ
ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (§ 4.2.1β4.2.3): — ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΡΠ½ΠΊΡΠΎΠ² ΠΌΠ΅Π½Ρ (Π²ΠΊΠ»Π°Π΄ΠΊΠ° Resource); — ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΌΠ΅Π½Ρ; — ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π½Π° ΡΠ²ΠΎΡ ΡΠ°ΠΌΠΈΠ»ΠΈΡ; — ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡ Π² ΠΎΠΊΠ½Π΅-ΡΠΏΡΠ°Π²ΠΊΠ΅; — ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π² ΠΎΠΊΠ½Π΅-ΡΠΏΡΠ°Π²ΠΊΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΠ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ MessageBox Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΠΏΡΠ°Π²ΠΊΠΈ; — ΠΏΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ MessageBox Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ. Π‘ΠΎΠ·Π΄Π°ΡΡ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Visual Studio.
ΠΠ·ΡΡΠΈΡΡ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΎΠ± ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΠΎΠΊΠΎΠ½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Β§§ 1.1−1.3, 2, 3.1, 3.2).
1. Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΊΠ°ΡΠΊΠ°Ρ (Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ EX1_empty) Windows-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΡΠΈΠΏ Empty) ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΠΌΠ°ΡΡΠ΅ΡΠ° Win32 Application. ΠΠ·ΡΡΠΈΡΡ Π΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° (ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π² ΠΠ’Π§ΠΠ’Π): — ΡΠΎΡΡΠ°Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ; - ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΡΠΎΡΡΠ°Π² (ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π΄Π΅ΡΠ΅Π²ΠΎ ΠΏΠ°ΠΏΠΎΠΊ, ΡΠΎΡΡΠ°Π², Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΈΡ ΡΠΎΠΏΠΎΠ΄ΡΠΈΠ½Π΅Π½Π½ΠΎΡΡΡ ΠΏΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ); - ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠΎΡΡΠ°Π² (ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΡΡ Π΅ΠΌΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΠΏΠΈΡΠ°ΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΎΡΠΎΡΠΈΠΏΡ ΡΡΠ½ΠΊΡΠΈΠΉ).
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Visual Studio ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ (New Project):
Π²ΡΠ±ΡΠ°ΡΡ ΠΏΡΠ½ΠΊΡ ΠΌΠ΅Π½Ρ File-New, Π² ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π²ΡΠ±ΡΠ°ΡΡ Π²ΠΊΠ»Π°Π΄ΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΡ Projects ΠΈ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΡΠ½ΠΊΡ Win32 Application, Ρ. Π΅. ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Windows-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ;
Π½Π°Π±ΡΠ°ΡΡ ΠΈΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° (Π·Π΄Π΅ΡΡ EX1) Π² ΡΡΡΠΎΠΊΠ΅ Project name, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΡΠΈΠΏΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² An empty project (ΠΏΡΡΡΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ), Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ°ΡΠΊΠ°ΡΠ° (Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΏΡΡΡΡΠΌΠΈ ΠΏΠ°ΠΏΠΊΠ°ΠΌΠΈ, Π΄Π΅ΡΠ΅Π²ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π² ΠΎΠΊΠ½Π΅ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° — Π²ΠΊΠ»Π°Π΄ΠΊΠ° FileView!) ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
2. Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ (Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ EX1_empty) ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Ρ ΠΎΠ΄Π½ΠΎΠΉ, Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, Π²ΡΠ²ΠΎΠ΄ΡΡΠ΅ΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠΈΠΏΠ° MessageBox (ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π² ΠΠ’Π§ΠΠ’Π). ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΡΠΊΠ°Ρ — ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» Π² ΠΏΠ°ΠΏΠΊΠ΅ Source Files ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
Π²ΡΠ±ΡΠ°ΡΡ ΠΏΡΠ½ΠΊΡ ΠΌΠ΅Π½Ρ File-New, Π² ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π²ΡΠ±ΡΠ°ΡΡ Π²ΠΊΠ»Π°Π΄ΠΊΡ ΡΠ°ΠΉΠ»Ρ Files ΠΈ ΠΏΡΠ½ΠΊΡ Π‘++ Source File, Ρ. Π΅. ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘;
Π½Π°Π±ΡΠ°ΡΡ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° Π² ΠΏΠΎΠ»Π΅ File name ΠΈ Π·Π°Π²Π΅ΡΡΠΈΡΡ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ (Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ ΠΏΡΡΡΠΎΠΉ ΡΠ°ΠΉΠ», ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ FileView);
Π²ΠΊΠ»ΡΡΠΈΡΡ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ #include, ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ WinMain, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
int WINAPI WinMain (HINSTANCE H1, HINSTANCE H2, LPSTR Str, int I).
{.
return 0;
};
Π²ΠΊΠ»ΡΡΠΈΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄ ΠΎΠΊΠ½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ (ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π΅ΡΠΎΡΠ½ΠΎΡΡΠΈ! Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎ F1 Π² ΡΠ°Π·Π΄Π΅Π»Π΅ CWindow: MessageBox — Microsoft Foundation classes …), Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, MessageBox (NULL, «Π Π°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅», «ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅», 1), Π·Π°ΡΠ΅ΠΌ MessageBox (hWnd, «Π Π°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅», «ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅», MB_OK), Π·Π°ΡΠ΅ΠΌ MessageBox (hWnd, «Π Π°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅», «ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅», MB_YESNOCANCEL) (ΡΡΠ½ΠΊΡΠΈΡ MessageBox ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠΎΡΠΎΡΠΈΠΏ ΠΠ«ΠΠΠ‘Π’Π_ΠΠΠΠ_Π‘ΠΠΠΠ©ΠΠΠΠ― (ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ’Π΅ΠΊΡΡΠ΅Π³ΠΎΠΠΊΠ½Π°, Π‘ΡΡΠΎΠΊΠ°Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ΠΠΊΠ½Π°Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π‘ΠΎΡΡΠ°Π²ΠΠ½ΠΎΠΏΠΎΠΊΠΠΊΠ½Π°Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ). ΠΠ΄Π΅ΡΡ ΡΠΎΡΡΠ°Π² ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΎΠΊΠ½Π° Π·Π°Π΄Π°Π΅ΡΡΡ ΠΊΠΎΠ΄Π°ΠΌΠΈ MB_OK, MB_OKCANCEL, MB_YESNOCANCEL ΠΈ Π΄Ρ. ΠΈΠ»ΠΈ ΠΈΡ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌΠΈ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ°ΠΌΠΈ, Π° ΡΠΈΠΏΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΊΠΎΠ΄ΠΈΡΡΡΡΡΡ ΠΊΠ°ΠΊ IDYES, IDOK, IDCANCEL ΠΈ Ρ. Π΄.) ΠΈ ΡΠ½ΠΎΠ²Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅;
Π²ΠΊΠ»ΡΡΠΈΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ MFC, Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π½Π° ΡΠ°ΠΉΠ», Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΡΠΎΠ»Ρ ΡΠ»ΡΠ·Π° Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠ»Π°ΡΡΠ°ΠΌ MFC, ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ΅ΡΠ΅Π· Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΌΠ΅Π½Ρ — Project-Settings-General-Use MFC;
Π²ΠΊΠ»ΡΡΠΈΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄ ΠΎΠΊΠ½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, AfxMessageBox («ΠΠΎΡ ΠΠΠ ΠΈ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ!», 1) ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΠΊΠΎΠ΄ — Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π½Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠ΅ ΠΎΠΊΠ½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
- 3. Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ (Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ EX2_empty) ΠΈΠ· Π΄Π²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² — ΠΎΠ΄ΠΈΠ½, Π³Π»Π°Π²Π½ΡΠΉ (Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ cpp) Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ — ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ WinMain, Π²ΡΠΎΡΠΎΠΉ — Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ (Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ h) Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΠΏ. 3, ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ Π³Π»Π°Π²Π½ΠΎΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° #include «*. h». ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
- 4. Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΊΠ°ΡΠΊΠ°Ρ (Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ EX3_simple) Windows-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΡΠΈΠΏ Simple) ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΠΌΠ°ΡΡΠ΅ΡΠ° Win32 Application (Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏ.2). ΠΠ·ΡΡΠΈΡΡ Π΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°: — ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ; - ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΡΠΎΡΡΠ°Π²; - ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠΎΡΡΠ°Π²; - ΡΠ΅ΡΡΡΡΠ½ΡΠΉ ΡΠΎΡΡΠ°Π² (ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π² ΠΠ’Π§ΠΠ’Π).
- 5. Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ (Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ EX3_simple), ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π² ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΊΠ°ΡΠΊΠ°Ρ ΠΏΡΡΠ΅ΠΌ Π²ΡΡΠ°Π²ΠΊΠΈ Π² WinMain ΡΡΠ½ΠΊΡΠΈΠΉ MessageBox (Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏ.3).
- 6. ΠΠ·ΡΡΠΈΡΡ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΡ ΠΈ ΡΠΈΠΏΠΎΠ²ΠΎΠΌ ΠΊΠ°ΡΠΊΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (Β§§ 4.1−4.3, 5.4).
CΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ EX4_simple) Π½Π° Π±Π°Π·Π΅ ΡΠΈΠΏΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ°ΡΠΊΠ°ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π’ΠΠ, Π²Π·ΡΠ² Π·Π° ΠΎΡΠ½ΠΎΠ²Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠ°ΡΠΊΠ°Ρ ΠΌΠ°ΡΡΠ΅ΡΠ° Win32 Application ΡΠΈΠΏΠ° Simple. ΠΠ·ΡΡΠΈΡΡ Π΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° (ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π² ΠΠ’Π§ΠΠ’Π): — ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ; - ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΡΠΎΡΡΠ°Π²; - ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠΎΡΡΠ°Π²; - ΡΠ΅ΡΡΡΡΠ½ΡΠΉ ΡΠΎΡΡΠ°Π².
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ:
ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ°ΡΠΊΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° (EX4), ΡΠΈΠΏ Simple (ΡΠΌ. ΠΏ.5);
Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ°ΠΉΠ» ΠΏΡΠΎΠ΅ΠΊΡΠ° (EX4. cpp) Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎΡΡ ΡΠ°ΠΌ ΡΠ΅ΠΊΡΡΠ° Π²ΡΡΠ°Π²ΠΈΡΡ ΡΠ΅ΠΊΡΡ Π’ΠΠ (ΡΠΌ. § 5.4), ΡΠΎΡ ΡΠ°Π½ΠΈΠ² ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ #include «stdafx. h» ;
Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΠΎΠ²ΡΠΎΡΠΈΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ:
ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ°ΡΠΊΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° (EX4), ΡΠΈΠΏ Simple (ΡΠΌ. ΠΏ.5);
Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ°ΠΉΠ» ΠΏΡΠΎΠ΅ΠΊΡΠ° (EX4. cpp) Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎΡΡ ΡΠ°ΠΌ ΡΠ΅ΠΊΡΡΠ° Π²ΡΡΠ°Π²ΠΈΡΡ ΡΠ΅ΠΊΡΡ Π’ΠΠ (ΡΠΌ. ΠΠ ΠΠΠΠΠΠΠΠ 7), ΡΠΎΡ ΡΠ°Π½ΠΈΠ² ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ #include «stdafx. h» ;
Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΡΡΡΠ°Π½ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ, Π²ΡΠ·Π²Π°Π½Π½ΡΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΠ΅ΠΌ Π² ΡΠ΅ΠΊΡΡΠ΅ Π½Π΅Π΄ΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
ΠΡΡΠ°Π²ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ MessageBox (Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏ.3).
7. ΠΠ·ΡΡΠΈΡΡ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΎΠ± ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (Β§§ 4.8, 4.9).
CΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ EX5_simple) ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·Π΅ Π’ΠΠ. ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (Π²ΠΈΠ΄ ΠΎΠΊΠ½Π°, ΡΠΎΡΡΠ°Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΎΠΊΠ½Π° — ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈ Ρ. ΠΏ.) (ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π² ΠΠ’Π§ΠΠ’Π). ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ:
ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (EX5_simple) Π½Π° Π±Π°Π·Π΅ Π’ΠΠ (ΡΠΌ. ΠΏ.7);
Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΡΠΌΠ΅Π½Ρ ΠΎΠΏΡΠΈΠΈ ΠΎΠΊΠ½Π° Π’ΠΠ — WS_OVERLAPPEDWINDOW ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΠΎΡΡΠ°Π² ΠΎΠΊΠ½Π°, Π½ΠΎ ΠΏΡΡΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅ΠΌΠ΅Π½ΡΠ½ΠΎΠ³ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² (ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈ Ρ. ΠΏ.);
Π²Π½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
ΡΡΡΡΠΊΡΡΡΡ WNDCLASS (ΡΠΌ. ΠΠ ΠΠΠΠΠΠΠΠ Π. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ ΡΡΡΡΠΊΡΡΡΡ WNDCLASS, ΠΠ ΠΠΠΠΠΠΠΠ Π. ΠΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΊΡΡΡΠΎΡΡ, ΠΠ ΠΠΠΠΠΠΠΠ Π. ΠΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΊΠΈΡΡΠΈ, ΠΠ ΠΠΠΠΠΠΠΠ Π. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Style);
ΡΡΠ½ΠΊΡΠΈΠΈ CreateWindow (ΡΠΌ. ΠΠ ΠΠΠΠΠΠΠΠ Π. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° dwStyle). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΎΠΊΠ½ΠΎ ΡΠ°ΠΌΠΊΠΈ, ΠΏΠΎΠ»ΠΎΡΡ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ, ΡΠ±ΡΠ°ΡΡ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π²Π½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΎΠΊΠ½Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ (x, y, Width, Height);
ΡΡΠ½ΠΊΡΠΈΠΈ ShowWindow (ΡΠΌ. ΠΠ ΠΠΠΠΠΠΠΠ Π. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° nCmdShow).
8. ΠΠ·ΡΡΠΈΡΡ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΎ ΡΡΠ½ΠΊΡΠΈΡΡ Π²ΡΠ²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ Π² ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π‘ΠΏΡΠ°Π²ΠΎΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΡΡΠ½ΠΊΡΠΈΡΠΌ Π²ΡΠ²ΠΎΠ΄Π° Π±Π΅ΡΠ΅ΡΡΡ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠ±ΠΈΡ «Π‘ΠΠΠΠΠΠΠ WINDOWS-ΠΠ ΠΠΠΠΠΠΠΠ Π Π‘ΠΠ‘Π’ΠΠΠ MICROSOFT VISUAL STUDIO C++», § 1.10 (ΡΠΌ. Π² ΡΠ΅ΡΠΈ ΡΠ°ΠΉΠ» — Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅WindowsΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ).
CΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ EX6_simple) Π½Π° Π±Π°Π·Π΅ Π’ΠΠ. ΠΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΡΠΎΠΊΡ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΠΈΡ (ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ 0, 0). ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΡΠ°Π²ΠΈΡΡ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_PAINT ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
char szText [25] = «Π Π°Π±ΠΎΡΠ°Π΅Ρ Π’ΠΠ»;
TextOut (hdc, 0, 0, szText, strlen (szText));.
ΠΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ²ΠΎΠ΄ Π΄Π°Π½Π½ΡΡ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,.
int Π₯ = 2007; char szΠ₯asString [100];
wsprintf (szΠ₯asString, «ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ Π₯ — %d», Π₯);
TextOut (hdc, 0, 130, szΠ₯asString, strlen (szΠ₯asString));.
ΠΡΠ²Π΅ΡΡΠΈ Π² ΡΡΠΎΠ»Π±ΠΈΠΊ Π΄Π»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π₯ ΠΎΡ 1 Π΄ΠΎ 10 ΠΏΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ: Π₯ — ΠΊΠ²Π°Π΄ΡΠ°Ρ Π₯.
ΠΠ°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅-ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΎΠΊΠ½Π°. Π£Π±Π΅Π΄ΠΈΡΡΡΡ Π² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.
ΠΠΎΠ±Π°Π²ΠΈΡΡ Π²ΡΠ²ΠΎΠ΄ Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠ΅ ΠΎΠΊΠ½Π° ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π½ΠΎΠΌΠ΅Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠΈ ReDrawNumber++. ΠΠ΄Π΅ΡΡ int ReDrawNumber = 0 — Π³Π»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ).
- 9. CΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ EX7_simple) Π½Π° Π±Π°Π·Π΅ Π’ΠΠ. ΠΡΠΎΡΠ°Π±ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°Π΄Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ Π²ΡΠ²Π΅ΡΡΠΈ Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ°Π±Π»ΠΈΡΡ.
- 10. CΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ EX8_simple) Π½Π° Π±Π°Π·Π΅ Π’ΠΠ. ΠΠΊΠ»ΡΡΠΈΡΡ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊ Π½Π°ΠΆΠ°ΡΠΈΡ Π»Π΅Π²ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ «ΠΌΡΡΠΈ» (ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_LBUTTONDOWN) ΠΈ ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ MessageBox. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅ΠΊΡΠΈΡ Ρ MessageBox
case WM_LBUTTONDOWN:
…
…
break;,.
Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ.
case WM_PAINT:
…
break;.
ΠΠΎΠ²ΡΠΎΡΠΈΡΡ Π·Π°Π΄Π°ΡΡ ΠΏ. 9, Π²ΡΠΏΠΎΠ»Π½ΡΡ Π²ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² ΡΠ΅ΠΊΡΠΈΠΈ case WM_LBUTTONDOWN (ΡΠ΅ΠΊΡΠΈΡ case WM_PAINT Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΏΡΡΡΠΎΠΉ).
ΠΠ°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅-ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΎΠΊΠ½Π°. ΠΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.
- 11. Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ EX81_simple) Π½Π° Π±Π°Π·Π΅ Π’ΠΠ. ΠΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_LBUTTONDOWN ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠΎΡΠΊΠΈ Π²ΡΠ²ΠΎΠ΄Π° X, Y Π½Π° 50 Π΅Π΄ΠΈΠ½ΠΈΡ ΠΈ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΡ, ΠΏΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_RBUTTONDOWN ΡΠΌΠ΅Π½ΡΡΠ°ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠΎΡΠΊΠΈ Π²ΡΠ²ΠΎΠ΄Π° X, Y Π½Π° 50 Π΅Π΄ΠΈΠ½ΠΈΡ ΠΈ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΡ, ΠΏΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WM_PAINT Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΠΊΡΡ «Π Π°Π±ΠΎΡΠ°Π΅Ρ Π’ΠΠ», Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ X, Y. ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠΎΡΠΊΠΈ Π²ΡΠ²ΠΎΠ΄Π° X, Y ΠΎΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ X = 0, Y = 0. ΠΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΡ ΠΎΠΊΠ½Π° ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ InvalidateRect (hWnd, NULL, TRUE).
- 12. ΠΠ·ΡΡΠΈΡΡ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΎ ΠΊΠ°ΡΠΊΠ°ΡΠ΅ — ΡΠΈΠΏ Hello. Π‘ΠΏΡΠ°Π²ΠΎΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π±Π΅ΡΠ΅ΡΡΡ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠ±ΠΈΡ «Π‘ΠΠΠΠΠΠΠ WINDOWS-ΠΠ ΠΠΠΠΠΠΠΠ Π Π‘ΠΠ‘Π’ΠΠΠ MICROSOFT VISUAL STUDIO C++», § 4.1.1−4.1.3 (ΡΠΌ. Π² ΡΠ΅ΡΠΈ ΡΠ°ΠΉΠ» — Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅WindowsΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ).
Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΊΠ°ΡΠΊΠ°Ρ (Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ EX9_hello) Windows-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΡΠΈΠΏ Hello) ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΠΌΠ°ΡΡΠ΅ΡΠ° Win32 Application (Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏ.2). ΠΠ·ΡΡΠΈΡΡ Π΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°: — ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ; - ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΡΠΎΡΡΠ°Π²; - ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠΎΡΡΠ°Π²; - ΡΠ΅ΡΡΡΡΠ½ΡΠΉ ΡΠΎΡΡΠ°Π² (ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π² ΠΠ’Π§ΠΠ’Π).
Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ (Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ EX9_hello), ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π² ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΊΠ°ΡΠΊΠ°Ρ ΠΏΡΡΠ΅ΠΌ Π²ΡΡΠ°Π²ΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ MessageBox Π² ΡΡΠ½ΠΊΡΠΈΡ-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° — LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) Π² ΡΠ΅ΠΊΡΠΈΡ WM_PAINT (ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΊΠΎΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ MessageBox ΠΈΠ· ΠΏ.3).
ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (§ 4.2.1−4.2.3): — ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΡΠ½ΠΊΡΠΎΠ² ΠΌΠ΅Π½Ρ (Π²ΠΊΠ»Π°Π΄ΠΊΠ° Resource); - ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΌΠ΅Π½Ρ; - ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π½Π° ΡΠ²ΠΎΡ ΡΠ°ΠΌΠΈΠ»ΠΈΡ; - ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡ Π² ΠΎΠΊΠ½Π΅-ΡΠΏΡΠ°Π²ΠΊΠ΅; - ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π² ΠΎΠΊΠ½Π΅-ΡΠΏΡΠ°Π²ΠΊΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΠ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ MessageBox Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΠΏΡΠ°Π²ΠΊΠΈ; - ΠΏΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ MessageBox Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ.
- 13. Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΊΠ°ΡΠΊΠ°Ρ (Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ EX10_hello) Windows-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΡΠΈΠΏ Hello) ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΠΌΠ°ΡΡΠ΅ΡΠ° Win32 Application, ΠΏΠΎΠ²ΡΠΎΡΠΈΠ² ΠΏ. 9.
- 14. Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΊΠ°ΡΠΊΠ°Ρ (Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ EX11_hello) Windows-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΡΠΈΠΏ Hello) ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΠΌΠ°ΡΡΠ΅ΡΠ° Win32 Application, ΠΏΠΎΠ²ΡΠΎΡΠΈΠ² ΠΏ. 12.