69996

СТРУКТУРА WINDOWS - ПРИЛОЖЕНИЙ. ОКОННАЯ ПРОЦЕДУРА. ОБРАБОТКА СООБЩЕНИЙ. ФАЙЛ РЕСУРСОВ

Лабораторная работа

Информатика, кибернетика и программирование

Цель: Ознакомление со структурой Windows-приложений, организацией взаимодействия программ с операционной системой, получение практических навыков по составлению, написанию и отладке простых программ.

Русский

2014-10-13

211 KB

1 чел.

Министерство образования и науки Украины

Харьковский Национальный Университет Радиоэлектроники

Кафедра ЭВМ

Лабораторная работа №1

Тема: «СТРУКТУРА WINDOWS - ПРИЛОЖЕНИЙ. ОКОННАЯ ПРОЦЕДУРА. ОБРАБОТКА СООБЩЕНИЙ. ФАЙЛ РЕСУРСОВ»

Выполнил:                                                                      Проверил:

ст. гр. КИ-08-4                                                                Бугрий А. М.

Кравец Артём Валерьевич

2009

Лабораторная работа №1

Тема: «СТРУКТУРА WINDOWS - ПРИЛОЖЕНИЙ. ОКОННАЯ ПРОЦЕДУРА. ОБРАБОТКА СООБЩЕНИЙ. ФАЙЛ РЕСУРСОВ»

Цель: Ознакомление со структурой Windows-приложений, организацией взаимодействия программ с операционной системой, получение практических навыков по составлению, написанию и отладке простых программ.

Ознакомление с ресурсами как средством создания визуального интерфейса и задания параметров и характеристик программного приложения, получение практических навыков по составлению, написанию и отладке программ, содержащих в ресурсных файлах описание курсоров, битовых образов, окон диалога, меню.

Задание:

Вариант 6

Написать с использованием функций API программу, создающую оконное приложение Windows.

Стиль класса:  выравнивание клиентской области по горизонтали, перерисовка окна при изменении вертикального размера;

Тип загружаемой иконки:  IDI_INFORMATION.

Тип загружаемого курсора: IDC_NO,

Цвет фона окна: БЕЛЫЙ,

Имя класса окна:  имя студента (на английском языке).

Стиль окна:

а) создается изначально минимизируемое окно;

 б) WS_OVERLAPPEDWINDOW.

Позиция окна: по верхнему краю экрана шириной 400 и высотой 500 точек

Создать в ресурсном файле битовый образ, который использовать в качестве фона окна приложения.

Программа должна содержать меню, в котором есть пункт "О программе", выбрав который, пользователь получает информацию о создателе программы.

Листинг:

#include <windows.h>

#include "resource.h"

// Глобальные переменные:

HINSTANCE hInst;  // Указатель приложения

LPCTSTR szWindowClass = "QWERTY";

LPCTSTR szTitle = "Лабораторная работа №1";

// Предварительное описание функций 

ATOM MyRegisterClass(HINSTANCE hInstance);

BOOL InitInstance(HINSTANCE, int);

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

// Основная программа 

int APIENTRY WinMain(HINSTANCE hInstance,

                    HINSTANCE hPrevInstance,

                    LPSTR     lpCmdLine,

                    int       nCmdShow)

{

MSG msg;

// Регистрация класса окна 

MyRegisterClass(hInstance);

// Создание окна приложения

if (!InitInstance (hInstance, nCmdShow))

{

 return FALSE;

}

// Цикл обработки сообщений

while (GetMessage(&msg, NULL, 0, 0))

{

  TranslateMessage(&msg);

  DispatchMessage(&msg);

}

return msg.wParam;

}

//  FUNCTION: MyRegisterClass()

//  Регистрирует класс окна 

ATOM MyRegisterClass(HINSTANCE hInstance)

{

WNDCLASSEX wcex;

wcex.cbSize = sizeof(WNDCLASSEX);

wcex.lpfnWndProc = (WNDPROC)WndProc; // оконная процедура

wcex.style   = CS_HREDRAW | CS_VREDRAW; // стиль окна

wcex.cbClsExtra  = 0;      

wcex.cbWndExtra  = 0;

wcex.hInstance  = hInstance;  // указатель приложения

wcex.hIcon   = LoadIcon(NULL, IDI_INFORMATION);  // опре-деление иконки

wcex.hCursor  = LoadCursor(NULL, IDC_NO);    // опреде-ление курсора

wcex.hbrBackground = CreatePatternBrush(LoadBitmap(hInstance, (LPCTSTR) IDB_BITMAP1));//GetSysColorBrush(COLOR_WINDOW);   // ус-тановка фона

wcex.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1);  // определение меню

wcex.lpszClassName = "Artem_Sergey"; // имя класса

wcex.hIconSm  = NULL;

return RegisterClassEx(&wcex); // регистрация класса окна

}

// FUNCTION: InitInstance(HANDLE, int)

// Создает окно приложения и сохраняет указатель приложения в переменной hInst

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)

{

  HWND hWnd;

  hInst = hInstance; // сохраняет указатель приложения в переменной hInst

 hWnd=CreateWindow("Artem_Sergey", // имя класса окна

szTitle,   // имя приложения

WS_OVERLAPPEDWINDOW, // стиль окна

 NULL, // положение по Х

NULL,  // положение по Y

400,    // размер по Х

500,    // размер по Y

NULL, // описатель родительского окна

NULL,       // описатель меню окна

hInstance,  // указатель приложения

NULL);     // параметры создания.

  if (!hWnd) // Если окно не создалось, функция возвращает FALSE

  {

     return FALSE;

  }

  ShowWindow(hWnd, nCmdShow);  // Показать окно

  UpdateWindow(hWnd);   // Обновить окно

  return TRUE;    //Успешное завершение функции

}

//  FUNCTION: WndProc(HWND, unsigned, WORD, LONG)

//  Оконная процедура. Принимает и обрабатывает все сообщения, приходящие в приложение

 

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

{

PAINTSTRUCT ps;

HDC hdc;

RECT rt;

 switch (message)

{

 case WM_CREATE: // Сообщение приходит при создании окна

  break;

 case WM_PAINT:  // Перерисовать окно

  hdc = BeginPaint(hWnd, &ps); // Начать графический вывод

  GetClientRect(hWnd, &rt); // Область окна для рисования

  DrawText(hdc, "ФК МЕТАЛЛИСТ!!!", -1, &rt, DT_SINGLELINE|DT_CENTER | DT_VCENTER);

  EndPaint(hWnd, &ps); // Закончить графический вывод

  break;

       case WM_COMMAND:

  if(LOWORD(wParam) == IDR_MENU1)

              MessageBox(NULL, "Эту программу написали два реальных мужика!:)", "Информация о создателях программы", MB_OK);

 break;

 case WM_DESTROY: // Завершение работы

   PostQuitMessage(0);

  break;

 default:

// Обработка сообщений, которые не обработаны пользователем

  return DefWindowProc(hWnd, message, wParam, lParam);

  }

return 0;

}

Результат:

Выводы: В этой лабораторной работе я ознакомился со структурой Windows-приложений, организацией взаимодействия программ с ОС, получил практические навыки по составлению, написанию и отладке простых программ. Ознакомился с ресурсами как средством создания визуального интерфейса и задания параметров и характеристик программного приложения.


 

А также другие работы, которые могут Вас заинтересовать

64354. ОРГАНІЗАЦІЙНО-ПРАВОВІ ЗАСАДИ АДМІНІСТРАТИВНОЇ ДІЯЛЬНОСТІ СПЕЦІАЛЬНИХ УСТАНОВ ОРГАНІВ ВНУТРІШНІХ СПРАВ 153 KB
  Значна кількість завдань міліції реалізується в процесі виконання своїх функцій спеціальними установами органів внутрішніх справ. Проте організаційно-правові основи діяльності цих установ ОВС України, незважаючи на їх теоретичну і практичну важливість...
64355. Підвищення конкурентоспроможності молокопереробних підприємств в умовах членства України в СОТ 183.5 KB
  Проблема конкурентоспроможності в аграрному секторі економіки є високоактуальною, що пов’язано із важливістю вирішення питань забезпечення продовольчої безпеки кожної країни в сенсі покращення здоров’я людей шляхом підвищення економічної ефективності виробництва продукції.
64356. МЕТОДИКА НАВЧАННЯ ПРОГРАМНИХ ЗАСОБІВ ЗАХИСТУ ІНФОРМАЦІЇ МАЙБУТНІХ ІНЖЕНЕРІВ-ПЕДАГОГІВ 222.5 KB
  Важко уявити сучасний заклад підприємство без розвиненої інформаційної інфраструктури: сукупності інформаційних центрів банків даних і знань центрів керування апаратнопрограмних засобів і технологій забезпечення збору зберігання обробки і передачі інформації...
64357. ПОРУШЕННЯ СИСТЕМ ГОМЕОСТАЗУ ТА ШЛЯХИ ЙОГО КОРЕКЦІЇ НА ЕТАПАХ КОМПЛЕКСНОГО ЛІКУВАННЯ ХВОРИХ НА ГЕНЕРАЛІЗОВАНИЙ ПАРОДОНТИТ 344.5 KB
  Мета дослідження обгрунтування концепції комплексного індивідуального лікування хворих на генералізований пародонтит на підставі визначення ролі систем гомеостазу в патогенезі пародонтиту вивчення дизбіотичних...
64358. Розвиток методів розрахунку систем охолоджування роторів газових турбін 2.57 MB
  В найближчому майбутньому освоєння високих температур газу відбуватиметься головним чином за рахунок вдосконалення систем охолоджування зокрема шляхом вдосконалення охолодження роторів турбін.
64359. Сформованість готовості майбутніх учителів до організації міжособистісних взаємин в учнівському колективі підлітків 435.5 KB
  Національна освіта переживає критичне та конструктивне переосмислення дійсності, пов’язане з глибоким перетворенням усіх сфер суспільного життя. Сьогодні пріоритетними у навчально-виховному процесі є: гуманізація, становлення сучасних засад морально-етичного виховання...
64360. Оптимізація процесу фізичного виховання студентів транспортних спеціальностей на основі поглибленого курсу професійно-прикладної фізичної підготовки 263.5 KB
  Дотепер накопичений досить великий арсенал наукових досліджень щодо застосування ППФП в освітньому процесі студентів майбутніх фахівців різних галузей господарства Сущенко Л. Недостатньо досліджено питання обґрунтованості вибору вправ професійноприкладної...
64361. УСВІДОМЛЕННЯ ПРОФЕСІЙНОГО ВИБОРУ МАЙБУТНІМИ ВЧИТЕЛЯМИ ЯК ЧИННИК САМОЗДІЙСНЕННЯ ОСОБИСТОСТІ 186.5 KB
  Процес вибору професії доволі складний тривалий і суперечливий. Професійне становлення особистості що починається з вибору професії не закінчується ним.
64362. ПІДВИЩЕННЯ ЕФЕКТИВНОСТІ ЗАХОДІВ ЗІ ЗМЕНШЕННЯ ОБМЕЖЕНЬ ШВИДКОСТІ РУХУ ПОЇЗДІВ, ЗУМОВЛЕНИХ СТАНОМ ЗАЛІЗНИЧНОЇ КОЛІЇ 440.5 KB
  Актуальність теми визначається необхідністю забезпечення безперебійного перевізного процесу на залізницях України підвищення швидкості руху поїздів зниження питомих витрат енергоресурсів зменшення строку доставки вантажів.