69996

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

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

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

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

Русский

2014-10-13

211 KB

5 чел.

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

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

Кафедра ЭВМ

Лабораторная работа №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-приложений, организацией взаимодействия программ с ОС, получил практические навыки по составлению, написанию и отладке простых программ. Ознакомился с ресурсами как средством создания визуального интерфейса и задания параметров и характеристик программного приложения.


 

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

7. Транспортно-експлуатаційні якості автомобільних доріг 463 KB
  Оцінка транспортно-експлуатаційного стану дорожнього покриву при вирішенні задач ремонту та утримання дороги. Аналіз та обґрунтування заходів щодо поліпшення споживчих властивостей автомобільної дороги засобами дорожньо–експлуатаційної служби.
8. Строение и управление мехатронной системой робота-массажера 467.5 KB
  Адаптация позиционно-силовой системы манипулятора путемкоррекции ориентации инструментальной оси. Открытая архитектура контроллера мехатронной системы. Динамическое управление системой управления робота.
9. Угловая вакуумная задвижка с дистанционным управлением 713.5 KB
  Разработка механизма регулировки положения импульсного источника нейтронов. Механизм указателей предельных положений и концевых выключателей. Перемещение источника нейтронов в двух направлениях.
10. Модели нагрузок систем электроснабжения ЛА 824.5 KB
  Управление регуляторами напряжения и регуляторами скорости с целью автоматизации процессов равномерного распределения нагрузок между работающими параллельно генераторами можно осуществить различными способами.
11. Технический проект цеха полуфабрикатов типа пельмени 572.95 KB
  Для производства пельменей всех видов применяют мясо, жир, субпродукты, яйца и сырье растительного происхождения (мука и лук). Обвалку и жиловку мясного сырья для пельменного производства производят по инструкциям и приемам, применяемым в колбасном цеху. Жилованое мясо всех видов и субпродукты используют для изготовления пельменей сразу без предварительного посола и выдерживания.
14. Философия познания как процесс приобретения, осмысления и усвоения знания 21.42 KB
  Важным понятием гносеологии выступает понятие познание. Под познанием принято понимать процесс приобретения, осмысления и усвоения знания об окружающем мире. Процесс познания – сложный процесс , имеющий свою внутреннюю структуру
15. Исследование характеристик линейных и нелинейных резисторов 43 KB
  Экспериментальное определение вольт-амперных характеристик (ВАХ) линейных и нелинейных резисторов и источников эклетромагнитной энергии. Исследовав ВАХ характеристики линейного и нелинейного резисторов.