Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
1 / 1 / 1
Регистрация: 28.12.2020
Сообщений: 10

Задание по созданию простейшего приложения WIN32

24.02.2023, 10:51. Показов 2463. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дано следующее задание: Необходимо разработать простейшую графическую программу средствами API OС.
Программа должна работать следующим образом:
1. при запуске программы создается пустое окно,
2. при нажатии клавиши F1 в точке с координатами (100,100) размером 50 создаются
равносторонний треугольник (размер - это расстояние от точки (100,100) до
вершины), он считается активной фигурой,
3. при нажатии левой кнопки мыши (ЛКМ) треугольник перемещается в указанную
точку (треугольник активная фигура),
4. при нажатии клавиши F2 в точке с координатами (200, 200) размером 50 создается
ромб, теперь он считается активной фигурой,
5. при нажатии ЛКМ ромб перемещается в указанную точку (активная фигура - ромб,
треугольник тоже рисуется, но он не перемещается, так как другая фигура активна),
6. при нажатии клавиши F3 в точке с координатами (300, 300) размером 50 создается
квадрат, он становиться активной фигурой,
7. при нажатии ЛКМ квадрат перемещается в указанную точку,
8. предусмотреть переключение активной фигуры: при нажатии стрелки влево на
клавиатуре активной фигурой становиться предыдущая (ромб), при следующем
нажатии стрелки влево - активная фигура треугольник, при нажатии стрелки вправо
активной фигурой становиться следующая (ромб), и т. д.
9. все действия выполняются с активной фигурой, при нажатии ЛКМ активная фигура
перемещается, при нажатии стрелки вверх, стрелки вниз активная фигура
увеличивается или уменьшается,
10. предусмотреть выделение активной фигуры толщиной линии (все фигуры тонкие,
активная фигура рисуется толстой линией),
11. при нажатии правой кнопки мыши (ПКМ) реализовать зеркальное отображение
активной фигуры относительно горизонтальной или вертикальной оси, проходящей
через точку нажатия ПКМ (тип оси вертикальная или горизонтальная должен
переключаться по нажатию клавиши пробел),
12. при нажатии клавиш F11, F12 предусмотреть вращение активной фигуры против и по
часовой стрелке относительно точки привязки, которая задается при создании или
перемещении фигуры, на угол П/12.


Дан следующий начальный код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <windows.h>
 
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {
 
    switch (Message) {
 
    case WM_DESTROY: {
        PostQuitMessage(0);
        break;
    }
    default:
        return DefWindowProc(hwnd, Message, wParam, lParam);
    }
    return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR IpCmdLine, int nCmdShow) {
    WNDCLASSEX wc;
    HWND hwnd;
    MSG msg;
 
    memset(&wc, 0, sizeof(wc));
    wc.cbSize = sizeof(WNDCLASSEX);
    wc.lpfnWndProc = WndProc;
    wc.hInstance = hInstance;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
    wc.lpszClassName = L"WindowClass";
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
 
    if (!RegisterClassEx(&wc)) {
        MessageBox(NULL, L"Window Registration Failed!", L"Error!", MB_ICONEXCLAMATION | MB_OK);
        return 0;
    }
 
    hwnd = CreateWindowEx(WS_EX_CLIENTEDGE, L"WindowClass", L"Caption", WS_VISIBLE | WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        640,
        480,
        NULL, NULL, hInstance, NULL);
    if (hwnd == NULL) {
        MessageBox(NULL, L"Window Registration Failed!", L"Error!", MB_ICONEXCLAMATION | MB_OK);
        return 0;
    }
 
    while (GetMessage(&msg, NULL, 0, 0) > 0) {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}
Заранее большое спасибо
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.02.2023, 10:51
Ответы с готовыми решениями:

Книги по созданию GUI в Win32
посоветуйте, пожалуйста, книги по созданию GUI в Win32, статьи может какие, ссылки у кого есть... я понимаю, что это не актуально, но мне...

Создание простейшего приложения - теста
Доброго времени суток! В Django новичок, не судите строго. Подскажите советом, как организовать процесс разработки/некоторые отдельные её...

Нужен пример простейшего приложения
Есть тема создания простейшего приложения в С# может кто нибуть это приложение воссаздать в его рабочий вид? очень надо для зачета.... ...

3
Модератор
2131 / 1000 / 170
Регистрация: 23.07.2018
Сообщений: 3,349
Записей в блоге: 3
18.03.2023, 08:42
Цитата Сообщение от Данил1234567 Посмотреть сообщение
Дан следующий начальный код:
Неплохо для начала!
Пункт 1 уже выполнен.

Неясно, какая используется система координат, и как должны накладываться фигуры при рисовке.
0
1 / 1 / 1
Регистрация: 28.12.2020
Сообщений: 10
18.03.2023, 09:04  [ТС]
Лучший ответ Сообщение было отмечено politoto как решение

Решение

Да это задание на windows.h уже сделал давно, сейчас пытаюсь его сделать на objective c и cocoa.h (API под мак ос)
1
18.03.2023, 10:07

Не по теме:

Данил1234567, не могли бы Вы тогда опубликовать окончательный вариант?
Вдруг у кого-нибудь возникнут вопросы с похожим заданием.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.03.2023, 10:07
Помогаю со студенческими работами здесь

Создание простейшего клиент-серверного приложения
Доброго времени суток, уважаемые форумчане. Помогите решить задачку: необходимо создать простейшее клиент-серверное приложение с...

Создание простейшего клиент-серверного приложения
делал всё по инструкции http://www.interface.ru/home.asp?artId=19397 дошёл до этого шага &quot;Вот на этом процесс создания примитивного...

Нужен пример простейшего клиент-серверного приложения
Добрый день. Прчитал примеры в MSDN, скачал книжку Сетевое программироване, но понять пока нечего не получается в сетевых приложениях....

Пример простейшего приложения со swipe-меню на Android
доброго времени суток не могли бы подсказать где можно взять пример самого просто приложения (или поделиться ссылкой на инфу) со свайп...

Создание простейшего приложения с графическим интерфейсом пользователя на основе библиотеки Qt
Помогите пожалуйста


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru