Министерство образования и науки Российской Федерации Государственное образовательное учреждение высшего профессионального образования «Комсомольский-на-Амуре Государственный Технический Университет» Факультет компьютерных технологий Кафедра «Математическое обеспечение и применение ЭВМ» Лабораторная работа № 3 по курсу «Человеко-машинное взаимодействие» Выполнил Проверил Вариант 1 г.Комсомольск-на-Амуре, 2010 г. |
Тема: «Меню в системе Windows».
Цель: Изучить принципы создания меню с помощью интерфейса Windows и научиться созданию такового в собственной программе.
Задание: Разработать меню в системе Windows. Среда разработки – Borland C++ 5
Ход работы
Создаем проект в среде BorlandC 5.02 (рис. 1 и рис. 2)
Рис 1. Создаем проект. Шаг 1
Рис 2. Создаем проект. Шаг 2
Рис 3. Файлы нового проекта
В файле proj0000.rc будет текст меню для формы. В файле proj0000.cpp опишем саму форму и команды, которые будут выполняться по нажатию меню. А файл proj0000.def удаляем с проекта.
Листинг файла proj0000.cpp
#include <windows.h>
LRESULT CALLBACK WindowFunc(HWND,UINT,WPARAM,LPARAM);
char szwinname[] = "MyWindow";
HINSTANCE hInst;
int WINAPI WinMain(HINSTANCE hthisinst, HINSTANCE hprevinst, LPSTR lpszargs, int nwinmode)
{
HWND hwnd;
MSG msg;
WNDCLASS wcl;
HACCEL haccel;
wcl.hInstance = hthisinst;
wcl.lpszClassName = szwinname;
wcl.lpfnWndProc= WindowFunc;
wcl.style = 0;
wcl.hIcon = LoadIcon (NULL, IDI_QUESTION);
wcl.hCursor = LoadCursor(NULL,IDC_ARROW);
wcl.lpszMenuName = "MYMENU";
wcl.cbClsExtra = 0;
wcl.cbWndExtra = 0;
wcl.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH);
hInst = hthisinst;
if(!RegisterClass(&wcl))
return 0;
hwnd = CreateWindow(szwinname, "Меню под Windows",
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 700, 200,
HWND_DESKTOP, NULL,hthisinst, NULL);
ShowWindow(hwnd,nwinmode);
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0))
{
if(!TranslateAccelerator(hwnd,haccel,&msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return msg.wParam;
}
LRESULT CALLBACK WindowFunc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
hdc=GetDC(hwnd);
LPSTR str;
LPSTR str2;
str2=" ";
switch(message)
{
case WM_COMMAND:
switch(LOWORD(wParam))
{
case 101: MessageBox(hwnd, "Создание исчезающего меню", "1 лабараторная работа", MB_OK); break;
case 102: MessageBox(hwnd, "Иерархическое меню", "2 лабараторная работа", MB_OK); break;
case 103: MessageBox(hwnd, "Меню в системе Windows", "3 лабараторная работа", MB_OK); break;
case 104: MessageBox(hwnd, "Модальные и немодальные диалоги", "4 лабараторная работа", MB_OK); break;
case 105: MessageBox(hwnd, "Стандартные компоненты ввода и отображения текстовой информации", "РГЗ", MB_OK); break;
case 106: MessageBox(hwnd, "Готов?", "Экзамен", MB_YESNO); break;
case 201: MessageBox(hwnd, "Дисассемблеры и отладчики", "1 лабараторная работа", MB_OK); break;
case 2021:
TextOut(hdc,1,1,str2,strlen(str2));
str="Изучить структуру и порядок программирования CMOS памяти персо-нальной ПЭВМ и написать модуль, читающий и расшифровывающий все данные CMOS памяти ПЭВМ";
TextOut(hdc,1,1,str,strlen(str));
break;
case 2022:
TextOut(hdc,1,1,str2,strlen(str2));
str="Изучить структуру ОЗУ ПЭВМ (в ОС реального режима), разобрать понятия CMA, UMA, HMA, EMA, XMA, EMS, XMS, UMB. Исследовать оперативную память компьютера в ОС реального режима с помощью системных утилит MEM, MSD, программ CHECKIT, SI и составить срав-нительную таблицу показаний этих программ по всем видам памяти ПЭВМ";
TextOut(hdc,1,1,str,strlen(str));
break;
case 2023:
TextOut(hdc,1,1,str2,strlen(str2));
str="Изучить технологию выделения блоков памяти ОС реального режима при загрузке и выполнении программ и исследовать (с помощью отлад-чика или написанного собственноручно модуля) цепочку MCB в памяти ПЭВМ";
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.