Міністерство освіти і науки України
Житомирський державний технологічний університет
Лабораторна робота №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 <windows.h>
LRESULTCALLBACKWndProc (HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static char szAppName[] = "HelloWin" ;
HWND hwnd ;
MSG msg ;
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
"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 CALLBACKWndProc (HWND hwnd,UINT iMsg, WPARAM wParam, LPARAM lParam)
Забиваем Сайты В ТОП КУВАЛДОЙ - Уникальные возможности от SeoHammer
Каждая ссылка анализируется по трем пакетам оценки: SEO, Трафик и SMM.
SeoHammer делает продвижение сайта прозрачным и простым занятием.
Ссылки, вечные ссылки, статьи, упоминания, пресс-релизы - используйте по максимуму потенциал SeoHammer для продвижения вашего сайта.
Что умеет делать SeoHammer
— Продвижение в один клик, интеллектуальный подбор запросов, покупка самых лучших ссылок с высокой степенью качества у лучших бирж ссылок.
— Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта.
— Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы).
— SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание.
SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз,
а первые результаты появляются уже в течение первых 7 дней.
Зарегистрироваться и Начать продвижение
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
switch (iMsg)
{
case WM_CREATE :
PlaySound ("hellowin.wav", NULL, SND_FILENAME | SND_ASYNC) ;
return 0 ;
case WM_PAINT :
hdc = BeginPaint (hwnd, &ps) ;
GetClientRect (hwnd, &rect) ;
DrawText (hdc, "Hello, Windows 95!", -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
EndPaint (hwnd, &ps) ;
return 0 ;
case WM_DESTROY :
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
}
3.
Завдання до лабораторної
Створити аналогічну програму, яка друкує в вікно:
Змінні середовища програми (Envayroment)
Шлях - звідки була запушена на виконання програма
Функція DrawText() – "малює" текст. Оскільки ця функція малює, то першим параметром має бути описувач контексту пристрою, який повертає функція BeginPaint.
Другим параметром є текст який малює функція. Саме сюди ми і заносимо текст який варто надрукувати.
Третій параметр встановлений -1 вказує на те, що рядок тексту завершується нульовим символом.
Четвертий параметр – розмір тексту.
Останнім параметром є набір прапорців, які вказують на розташування тексту.
Отже, щоб змінити написи у вікні варто змінити(додати) у програмі функцію:
DrawText (hdc, "ТЕКСТ", -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
програма файл вікно звуковий
Отже, на даній лабораторній роботі було розібрано роботу програми, яка демонструє основні принципи створення вікна у OSWindows. У ході виконання роботи було розібрано використання функцій для створення вікна, відображення у вікні тексту, та відтворення звукових файлів.
Під час модифікації програмного коду було здобуто практичні навики створення вікон, відображення тексту, відтворення звуку.
|