ΠΡΠ½ΡΡΡΠ΅ΡΡΡΠ²ΠΎ ΠΎΡΠ²ΡΡΠΈ Ρ Π½Π°ΡΠΊΠΈ Π£ΠΊΡΠ°ΡΠ½ΠΈ ΠΠΈΡΠΎΠΌΠΈΡΡΡΠΊΠΈΠΉ Π΄Π΅ΡΠΆΠ°Π²Π½ΠΈΠΉ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΡΡΠ½ΠΈΠΉ ΡΠ½ΡΠ²Π΅ΡΡΠΈΡΠ΅Ρ ΠΠ°Π±ΠΎΡΠ°ΡΠΎΡΠ½Π° ΡΠΎΠ±ΠΎΡΠ° № 4
Π· ΠΊΡΡΡΡ «Π‘ΠΈΡΡΠ΅ΠΌΠ½Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΠ²Π°Π½Π½Ρ»
Π½Π° ΡΠ΅ΠΌΡ: «ΠΡΠΎΠ³ΡΠ°ΠΌΠ° HelloWin»
ΠΌ. ΠΠΈΡΠΎΠΌΠΈΡ
2011 Ρ.
- 1. ΠΠ°Π²Π΄Π°Π½Π½Ρ Π΄Π»Ρ Π²ΠΈΠΊΠΎΠ½Π°Π½Π½Ρ
- 2. Π’Π΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ
- 3. ΠΠ°Π²Π΄Π°Π½Π½Ρ Π΄ΠΎ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΡ
- ΠΠΈΡΠ½ΠΎΠ²ΠΎΠΊ
1. ΠΠ°Π²Π΄Π°Π½Π½Ρ Π΄Π»Ρ Π²ΠΈΠΊΠΎΠ½Π°Π½Π½Ρ
1. Π ΠΎΠ·ΡΠ±ΡΠ°ΡΠΈ ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ hellowin.c.
2. ΠΠΈΠ²ΡΠΈΡΠΈ ΠΌΠ°ΡΠ΅ΡΡΠ°Π» Π²ΠΈΠΊΠ»Π°Π΄Π΅Π½ΠΈΠΉ Ρ ΡΠ°ΠΉΠ»Ρ Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΈ.
3. Π‘ΡΠ²ΠΎΡΠΈΡΠΈ Π°Π½Π°Π»ΠΎΠ³ΡΡΠ½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡ, ΡΠΊΠ° Π΄ΡΡΠΊΡΡ Π² Π²ΡΠΊΠ½ΠΎ:
Β· ΠΠΌΡΠ½Π½Ρ ΡΠ΅ΡΠ΅Π΄ΠΎΠ²ΠΈΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ (Envayroment)
Β· Π¨Π»ΡΡ
— Π·Π²ΡΠ΄ΠΊΠΈ Π±ΡΠ»Π° Π·Π°ΠΏΡΡΠ΅Π½Π° Π½Π° Π²ΠΈΠΊΠΎΠ½Π°Π½Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°
2. Π’Π΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ
/*———————————————————————————————————————;
HELLOWIN.C — Displays «Hello, Windows 95!» in client area
© Charles Petzold, 1996
———————————————————————————————————————-*/
#include
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static char szAppName[] = «HelloWin» ;
HWND hwnd ;
MSG msg ;
WNDCLASSEX wndclass ;
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, // window class name
" The Hello Program" ,// window caption
WS_OVERLAPPEDWINDOW, // window style
CW_USEDEFAULT, // initial x position
CW_USEDEFAULT, // initial y position
CW_USEDEFAULT, // initial x size
CW_USEDEFAULT, // initial y size
NULL, // parent window handle
NULL, // window menu handle
hInstance, // program instance handle
NULL); // creation parameters
ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg. wParam ;
}
LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
switch (iMsg)
case WM_CREATE :
PlaySound («hellowin.wav», NULL, SND_FILENAME
return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
}
3. ΠΠ°Π²Π΄Π°Π½Π½Ρ Π΄ΠΎ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΡ
Π‘ΡΠ²ΠΎΡΠΈΡΠΈ Π°Π½Π°Π»ΠΎΠ³ΡΡΠ½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡ, ΡΠΊΠ° Π΄ΡΡΠΊΡΡ Π² Π²ΡΠΊΠ½ΠΎ:
ΠΠΌΡΠ½Π½Ρ ΡΠ΅ΡΠ΅Π΄ΠΎΠ²ΠΈΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ (Envayroment)
Π¨Π»ΡΡ
— Π·Π²ΡΠ΄ΠΊΠΈ Π±ΡΠ»Π° Π·Π°ΠΏΡΡΠ΅Π½Π° Π½Π° Π²ΠΈΠΊΠΎΠ½Π°Π½Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π€ΡΠ½ΠΊΡΡΡ DrawText () — «ΠΌΠ°Π»ΡΡ» ΡΠ΅ΠΊΡΡ. ΠΡΠΊΡΠ»ΡΠΊΠΈ ΡΡ ΡΡΠ½ΠΊΡΡΡ ΠΌΠ°Π»ΡΡ, ΡΠΎ ΠΏΠ΅ΡΡΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΌΠ°Ρ Π±ΡΡΠΈ ΠΎΠΏΠΈΡΡΠ²Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡ ΠΏΡΠΈΡΡΡΠΎΡ, ΡΠΊΠΈΠΉ ΠΏΠΎΠ²Π΅ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΡΡ BeginPaint.
ΠΡΡΠ³ΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Ρ ΡΠ΅ΠΊΡΡ ΡΠΊΠΈΠΉ ΠΌΠ°Π»ΡΡ ΡΡΠ½ΠΊΡΡΡ. Π‘Π°ΠΌΠ΅ ΡΡΠ΄ΠΈ ΠΌΠΈ Ρ Π·Π°Π½ΠΎΡΠΈΠΌΠΎ ΡΠ΅ΠΊΡΡ ΡΠΊΠΈΠΉ Π²Π°ΡΡΠΎ Π½Π°Π΄ΡΡΠΊΡΠ²Π°ΡΠΈ.
Π’ΡΠ΅ΡΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π²ΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ -1 Π²ΠΊΠ°Π·ΡΡ Π½Π° ΡΠ΅, ΡΠΎ ΡΡΠ΄ΠΎΠΊ ΡΠ΅ΠΊΡΡΡ Π·Π°Π²Π΅ΡΡΡΡΡΡΡΡ Π½ΡΠ»ΡΠΎΠ²ΠΈΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ.
Π§Π΅ΡΠ²Π΅ΡΡΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ — ΡΠΎΠ·ΠΌΡΡ ΡΠ΅ΠΊΡΡΡ.
ΠΡΡΠ°Π½Π½ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Ρ Π½Π°Π±ΡΡ ΠΏΡΠ°ΠΏΠΎΡΡΡΠ², ΡΠΊΡ Π²ΠΊΠ°Π·ΡΡΡΡ Π½Π° ΡΠΎΠ·ΡΠ°ΡΡΠ²Π°Π½Π½Ρ ΡΠ΅ΠΊΡΡΡ.
ΠΡΠΆΠ΅, ΡΠΎΠ± Π·ΠΌΡΠ½ΠΈΡΠΈ Π½Π°ΠΏΠΈΡΠΈ Ρ Π²ΡΠΊΠ½Ρ Π²Π°ΡΡΠΎ Π·ΠΌΡΠ½ΠΈΡΠΈ (Π΄ΠΎΠ΄Π°ΡΠΈ) Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡ ΡΡΠ½ΠΊΡΡΡ:
DrawText (hdc, «Π’ΠΠΠ‘Π’», -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
ΠΠΈΡΠ½ΠΎΠ²ΠΎΠΊ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΡΠ°ΠΉΠ» Π²ΡΠΊΠ½ΠΎ Π·Π²ΡΠΊΠΎΠ²ΠΈΠΉ
ΠΡΠΆΠ΅, Π½Π° Π΄Π°Π½ΡΠΉ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΡΠΉ ΡΠΎΠ±ΠΎΡΡ Π±ΡΠ»ΠΎ ΡΠΎΠ·ΡΠ±ΡΠ°Π½ΠΎ ΡΠΎΠ±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ, ΡΠΊΠ° Π΄Π΅ΠΌΠΎΠ½ΡΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈ ΡΡΠ²ΠΎΡΠ΅Π½Π½Ρ Π²ΡΠΊΠ½Π° Ρ OS Windows. Π£ Ρ
ΠΎΠ΄Ρ Π²ΠΈΠΊΠΎΠ½Π°Π½Π½Ρ ΡΠΎΠ±ΠΎΡΠΈ Π±ΡΠ»ΠΎ ΡΠΎΠ·ΡΠ±ΡΠ°Π½ΠΎ Π²ΠΈΠΊΠΎΡΠΈΡΡΠ°Π½Π½Ρ ΡΡΠ½ΠΊΡΡΠΉ Π΄Π»Ρ ΡΡΠ²ΠΎΡΠ΅Π½Π½Ρ Π²ΡΠΊΠ½Π°, Π²ΡΠ΄ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π½Ρ Ρ Π²ΡΠΊΠ½Ρ ΡΠ΅ΠΊΡΡΡ, ΡΠ° Π²ΡΠ΄ΡΠ²ΠΎΡΠ΅Π½Π½Ρ Π·Π²ΡΠΊΠΎΠ²ΠΈΡ
ΡΠ°ΠΉΠ»ΡΠ².
ΠΡΠ΄ ΡΠ°Ρ ΠΌΠΎΠ΄ΠΈΡΡΠΊΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Ρ Π±ΡΠ»ΠΎ Π·Π΄ΠΎΠ±ΡΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ½Ρ Π½Π°Π²ΠΈΠΊΠΈ ΡΡΠ²ΠΎΡΠ΅Π½Π½Ρ Π²ΡΠΊΠΎΠ½, Π²ΡΠ΄ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π½Ρ ΡΠ΅ΠΊΡΡΡ, Π²ΡΠ΄ΡΠ²ΠΎΡΠ΅Π½Π½Ρ Π·Π²ΡΠΊΡ.