АндроновМД_МП3120. Федеральное государственное бюджетное образовательное учреждение высшего образования московский авиационный институт
Скачать 0.76 Mb.
|
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ (НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ)» (МАИ) филиал «РКТ» МАИ в г. Химки Московской области Автор : Андронов Максим Дмитриевич Руководитель: Жилина Татьяна Анатольевна Наименование темы: Разработка Windows приложений ДОКЛАД Квалификация: Техник программист Специальность: 09.02.03 Программирование в компьютерных системах Группа: МП31-20 Модуль 1. Реализация команд MSPaint и Calc. Свойства CheckBox Программный модуль создающий диалоговую панель, в которой при вводе в строку редактирования paint или calculator запускаются windows paint или windows calculator. На данной панели присутствуют чек боксы: видимость и блокировка. В активном состоянии строка видна и доступна для редактирования, при снятии галочек строка исчезает или блокируется. Функция запуска программы MSPaint if (LOWORD(wParam) == ID_BUTTON_1) //Условие нажатия на кнопку "Открыть" {
std::vector GetWindowTextW(hwndEdit, &buf[0], len); //Считывание текста std::wstring paint = &buf[0]; if (paint == L"paint" || paint == L"PAINT" || paint == L"Paint" || paint L"ПЕЙНТ" || paint == L"Пейнт" || paint == L"пейнт") //Вариация ввода в поле { WinExec("mspaint.exe", 1); //Запуск программы MSPaint } Программный модуль, в котором предусмотрена возможность для рисования с помощью линий, установленного цвета и размера в соответствии с движением мыши. Условия: наличие возможности выбора цветов (из списка), наличие возможности выбора толщины линий, наличие кнопки "Выход". Функция нажатия кнопки мыши case WM_LBUTTONDOWN: //Сообщение нажатия левой кнопки мыши
ptPrevious.x = LOWORD(lParam); //Определение координаты Х ptPrevious.y = HIWORD(lParam); //Определение координаты Y break; case WM_LBUTTONUP: //Сообщение прекращения нажатия левой кнопки мыши if (fDraw) {
MoveToEx(hdc, ptPrevious.x, ptPrevious.y, NULL); LineTo(hdc, LOWORD(lParam), HIWORD(lParam)); ReleaseDC(hWnd, hdc); fDraw = FALSE; //Прекращение рисования } Программный модуль, создающий диалоговую панель на которой расположена кнопка запуска дочернего окна, в котором при нажатии на клавиатуру, показывается нажатый символ. Функция нажатия клавиши case WM_KEYDOWN: //Сообщение нажатия клавиши
GetKeyNameText(lParam, (LPWSTR)key.c_str(), 100); //Определение клавиши и запись ключа в строку SetWindowText(static_cont, (LPWSTR)key.c_str()); //Вывод строки на экран break; Программный модуль, содержащий меню из двух кнопок "файл" и "помощь", в рабочей области расположено окно редактирования (текстовое поле в середине главного окна), которое позволяет вводить только числа без знаков препинания, букв, спец клавиш, пункт меню "файл" содержит только одну команду "показать число", эта команда вызывает окно с сообщением, в которое передаётся информация из окна редактирования. Функция считывания числа if ((menu)wParam == menu::show) //Условия нажатия на пункты меню "файл – показать число" {
GetWindowText(hwndEdit, command, 1024); //Считывание текста и запись в строку MessageBox(hwndA, command, L"Number", MB_OK | MB_ICONINFORMATION); //Вывод полученной строки в отдельном окне } Программный модуль, в главном окне которого расположено 3 кнопки "вопрос 1" "вопрос 2" "вопрос 3", каждая кнопка вызывает отдельное окно, в котором расположен некоторый вопрос и две кнопки ответа. При выборе кнопки с неправильным ответом, выдаётся сообщение о том, что ответ неверный и закрывается окно. При выборе кнопки с правильным ответом появляется сообщение о том, что ответ верный и вопрос "выбрать ли другой вопрос?", где будет 3 варианта - две кнопки с оставшимися вопросами и кнопка "нет", закрывающая окно. Для того, чтобы закрыть главное окно используется пункт меню "файл – выход". При выборе пункта меню "помощь" должно открываться справочное окно, где написано, что надо делать в этой программе. Функция определения выбора вопроса case WM_COMMAND: if ((buttons)wParam == buttons::var1) //Кнопка 1 { DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG1), hWnd, var1); //Вызов окна 1 } if ((buttons)wParam == buttons::var2) //Кнопка 2 { DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG2 hWnd, var2); //Вызов окна 2 } if ((buttons)wParam == buttons::var3) //Кнопка 3 { DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG3), hWnd, var3); //Вызов окна 3 } Модуль 6. Прорисовка окружности Программный модуль создающий диалоговую панель, в которой в непрерывном режиме выполняется прорисовка окружности, у которой постепенно увеличивается радиус. При достижении границ окна радиус начинает уменьшаться. У диалогового окна должна присутствовать кнопка выбора цвета, которая выводит диалоговое окно с выбором цвета круга с помощью радиокнопок. Для изменения цвета круга нужно подтвердить кнопкой "ОК". Функция прорисовки окружности void draw(HDC hdc) {
Gdiplus::Pen pen(color); //Создание пера gf.DrawEllipse(&pen, width / 2 - circle_diameter / 2, height / 2 - circle_diameter / 2, circle_diameter, circle_diameter); //Определение координат и диаметра окружности } Программный модуль, имеющий меню, содержащее пункты "открыть файл" и "выход". Пункт меню "открыть файл" должен позволять открыть графический файл с расширением .bmp. Кнопка выход позволяет выйти из программы. Не должно быть изменений с файлом кроме изменения размера окна. файл должен отрываться в главном окне этого модуля и подровнять под размеры этого окна. Функция открытия файла if (GetOpenFileName(&open_file_name)) //Определение открытия файла {
Gdiplus::Graphics gf(hdc); //Указание дескриптора объекта Gdiplus::Bitmap bmp(path); gf.DrawImage(&bmp, 0, 0, width, height); //Отрисовка изображения return 1; } |