69996

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

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

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

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

Русский

2014-10-13

211 KB

3 чел.

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

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

Кафедра ЭВМ

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


 

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

79575. MACHINE TOOLS — A MEASURE OF MANS PROGRESS 293.76 KB
  MCHINE TOOLS MESURE OF MN\'S PROGRESS The vriety nd combintions of mchine tools tody re unlimited. The min mchine tool of such workshop is the multipurpose lthe. Wht is lthe It is powerdriven mchine with specil tools which cn cut or form metl prts. Technologicl progress improves ccurcy of mchine tools.
79576. IN THE CHEMICAL LABORATORY 606.12 KB
  Nerly in the middle there stnds Bunsen burner with flsk over it. During n experiment the Bunsen burner is connected with the min gs line by rubber tube. The flme of the burner is being regulted by mens of tp. From time to time Brbr looks up t the solution which is boiling on the Bunsen burner.
79577. RADIO AND TV MARCH AHEAD 301.2 KB
  RDIO ND TV MRCH HED More thn 100 yers pssed since the dy when the Russin scientist lexnder Popov demonstrted his storm indictor which ws the prototype of modern rdio receivers. Gret progress hs been mde in rdio engineering rdio communictions rdio brodcstings nd television since tht time. In the modern world rdio nd television ply n importnt role s mss medi of informtion nd s mens of...
79578. BETTER METALS ARE VITAL TO TECHNOLOGICAL PROGRESS 27.15 KB
  Since the erliest dys the preprtion of metls for mechnicl use ws vitl to the dvnce of civiliztion. Tody we know more thn sixtyfive metls vilble in lrge enough quntities to be used in industry. Metls re mostly solids t ordinry tempertures nd possess comprtively high melting points with the exception of mercury. The Erth contins lrge number of metls useful to mn.
79579. SOURCES OF POWER 28.42 KB
  SOURCES OF POWER The industril progress of mnkind is bsed on power: power for industril plnts mchines heting nd lighting systems trnsport communiction. In fct one cn hrdly find sphere where power is not required. t present most of the power required is obtined minly from two sources. The second wy of producing electricity is by mens of genertors tht get their power from stem or wter turbines.
79580. PULKOVO - RUSSIAS MAIN OBSERVATORY 175.09 KB
  Two gret observtories. Greenwich nd Pulkovo occupy leding plce mong the observtories of the world. Pulkovo is situted in hilly re some kilometres from St. You cnt get to Pulkovo by trin: when the rilwy ws being built the stronomers specilly sked tht it should be kepi severl kilometres wy so tht there should be no vibrtion to ffect the sensitive instruments.
79581. FUNDAMENTALS OF THEORY AND PRACTICE OF TRANSLATION 1.44 MB
  Тhe educational material is grouped in topical arrangements and staffed within the case modules’ framework representing the set of submodules enabling one to familiarize the trainees with the theoretical information and to consolidate it in slideshow illustrations, assignments, exercises.
79582. Эмпирическое исследование особенности развития мыслительных процессов детей младшего школьного возраста с задержкой психического развития 2.43 MB
  Целью эмпирического исследования в данной выпускной квалификационной работе является анализ особенностей мышления у детей с задержкой психического развития младшего школьного возраста, и разработать рекомендации для общеобразовательных учреждений о коррекционной работе с детьми с задержкой психического развития.
79583. Розробка ЛОМ для Пологівської філії «Укртелеком» 1.6 MB
  Задачею дипломного проекту є розробка локально-обчислюваної мережі для будинку цеху ТП №13 міста Пологи Запорізької філії ВАТ «Укртелеком». Організаційно-штатна структура підприємства наведена в рисунку 1.1. Локально-обчислювана мережа розробляється на вже існуючих комп’ютерах.