Міністерствоосвіти і науки України
Житомирський державний технологічний університет
Лабораторнаробота №4
зкурсу «Системне програмування»
натему: «Програма HelloWin»
м.Житомир
2011р.
Содержание
1. Завдання для виконання
2. Текст програми
3. Завдання долабораторної
Висновок
1. Завдання для виконання
1. Розібратитекст програми hellowin.c.
2. Вивчитиматеріал викладений у файлі допомоги.
3. Створитианалогічну програму, яка друкує в вікно:
· Зміннісередовища програми (Envayroment)
· Шлях — звідки була запушена на виконання програма
2. Текст програми
/*-------------------------------------------------------------------------------
HELLOWIN.C-- Displays «Hello, Windows 95!» in client area
(c)Charles Petzold, 1996
-------------------------------------------------------------------------------*/
#include
LRESULTCALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
intWINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTRszCmdLine, int iCmdShow)
{
staticchar szAppName[] = «HelloWin» ;
HWNDhwnd ;
MSGmsg ;
WNDCLASSEXwndclass ;
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
«TheHello 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) ;
}
returnmsg.wParam ;
}
LRESULTCALLBACK WndProc(HWND hwnd, UINTiMsg, WPARAM wParam, LPARAM lParam)
{
HDChdc ;
PAINTSTRUCTps ;
RECTrect ;
switch(iMsg)
{
caseWM_CREATE :
PlaySound(«hellowin.wav», NULL, SND_FILENAME | SND_ASYNC) ;
return0 ;
caseWM_PAINT :
hdc= BeginPaint (hwnd, &ps) ;
GetClientRect(hwnd, &rect) ;
DrawText(hdc, «Hello, Windows 95!», -1, &rect,
DT_SINGLELINE| DT_CENTER | DT_VCENTER) ;
EndPaint(hwnd, &ps) ;
return0 ;
caseWM_DESTROY :
PostQuitMessage(0) ;
return0 ;
}
returnDefWindowProc (hwnd, iMsg, wParam, lParam) ;
}3. Завданнядо лабораторної
Створитианалогічну програму, яка друкує в вікно:
Зміннісередовища програми (Envayroment)
Шлях- звідки була запушена на виконання програма
ФункціяDrawText()– «малює» текст. Оскільки ця функція малює, то першим параметром маєбути описувач контексту пристрою, який повертає функція BeginPaint.
Другимпараметром є текст який малює функція. Саме сюди ми і заносимо текст який вартонадрукувати.
Третійпараметр встановлений -1 вказує на те, що рядок тексту завершується нульовимсимволом.
Четвертийпараметр – розмір тексту.
Останнімпараметром є набір прапорців, які вказують на розташування тексту.
Отже,щоб змінити написи у вікні варто змінити(додати) у програмі функцію:
DrawText(hdc, «ТЕКСТ»,-1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
Висновок
програмафайл вікно звуковий
Отже, на данійлабораторній роботі було розібрано роботу програми, яка демонструє основніпринципи створення вікна у OSWindows. Уході виконання роботи було розібрано використання функцій для створення вікна,відображення у вікні тексту, та відтворення звукових файлів.
Під час модифікаціїпрограмного коду було здобуто практичні навики створення вікон, відображеннятексту, відтворення звуку.