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


 

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

76493. Споры о воспитании детей 16.87 KB
  Существует два вида споров о воспитании детей: споры о месте жительства несовершеннолетнего ребенка при раздельном проживании родителей; споры об участии отдельно проживающего родителя в воспитании ребенка. 66 Семейного Кодекса Российской Федерации родители при их раздельном проживании могут решить вопрос о месте проживания ребенка соглашением письменным договором в котором сами определяют с кем из родителей будут жить несовершеннолетние дети кто и в каких размерах будет выплачивать средства на их содержание Однако такое соглашение не...
76494. Права и обязанности родителей 19.17 KB
  Большинство прав родителей корреспондируются с правами ребенка однако последние шире по объему. Втретьих при осуществлении родительских прав и обязанностей должен соблюдаться приоритет интересов ребенка п. Это положение имеет принципиальное значение поскольку нередки жизненные ситуации когда интересы родителя противоречат интересам ребенка. Например родители не оказывают должного внимания духовному развитию ребенка ссылаясь на нехватку времени.
76495. Осуществление и защита родительских прав 14.01 KB
  Способы воспитания детей должны исключать пренебрежительное жестокое грубое унижающее человеческое достоинство обращение оскорбление или эксплуатацию детей. Родители осуществляющие родительские права в ущерб правам и интересам детей несут ответственность в установленном законом порядке. Все вопросы касающиеся воспитания и образования детей решаются родителями по их взаимному согласию исходя из интересов детей и с учетом мнения детей.
76496. Осуществление прав отдельно проживающим родителем 16.2 KB
  66 СК родитель проживающий отдельно от ребенка имеет право на общение с ребенком участие в его воспитании и решение вопросов получения ребенком образования что согласуется с установленным в Кодексе принципом равных родительских прав и обязанностей п. В результате ущемляются законные права и интересы как одного из родителей так и ребенка. 66 СК установлено что родитель с которым проживает ребенок не должен препятствовать общению ребенка с другим родителем если такое общение не причиняет вред физическому и психическому здоровью...
76497. Меры государственной помощи семьям, имеющим детей 17.04 KB
  Основные виды государственных пособий гражданам имеющим детей в связи с их рождением и воспитанием перечислены в Федеральном законе от 19. При этом более подробные нормы об условиях назначения детских пособий и порядке их выплаты содержатся в Приказе Минздравсоцразвития России от 23 декабря 2009 г. N 1012н Об утверждении Порядка и условий назначения и выплаты государственных пособий гражданам имеющим детей. В указанных правовых актах перечислены следующие виды пособий: 1 пособие по беременности и родам; 2 единовременное пособие...
76498. Защита прав несовершеннолетних детей 19.12 KB
  56 Семейного Кодекса РФ говорит о том что ребенок имеет право на защиту своих прав и право на защиту от злоупотреблений со стороны родителей. Защита прав и законных интересов осуществляется родителями а в случаях предусмотренных Семейным кодексом в частности когда органом опеки и попечительства установлено что между интересами родителей и детей имеются противоречия родители лишены родительских прав граждане чья дееспособность ограничена вследствие злоупотребления алкоголем органом Опеки и попечительства прокурором судом. При...
76499. Лишение родительских прав: основания, порядок 16.41 KB
  Уклонение родителей от выполнения своих обязанностей по воспитанию детей может выражаться в отсутствии заботы об их нравственном и физическом развитии обучении подготовке к общественно полезному труду; – отказываются без уважительных причин взять своего ребенка из родильного дома отделения либо из иного лечебного учреждения воспитательного учреждения учреждения социальной защиты населения или из других аналогичных учреждений; – злоупотребляют своими родительскими правами т. использование этих прав в ущерб интересам детей например...
76500. Правовые последствия лишения родительских прав 16.64 KB
  71 СК следует что родители лишенные родительских прав утрачивают вопервых все права основанные на факте родства с ребенком в отношении которого они лишены родительских прав причем речь идет не только о тех правах которые они имели до достижения детьми совершеннолетия но и других вытекающих как из семейных так и иных правоотношений. Вовторых родители лишенные родительских прав утрачивают право на льготы и государственные пособия установленные для граждан имеющих детей. Так лишение родительских прав влечет утрату для...
76501. Восстановление в родительских правах 18.79 KB
  Что касается правовой стороны восстановления в родительских правах то оно допустимо лишь в отношении несовершеннолетних так как напрямую связано с воспитанием ребенка. 72 СК восстановление в родительских правах уже невозможно. Восстановление в родительских правах допускается если родители один из них изменили: свое поведение; образ жизни; отношение к воспитанию ребенка.