|
3 / 3 / 0
Регистрация: 25.03.2018
Сообщений: 9
|
|||||||||||
Как правильно спроектировать приложение?21.03.2019, 21:49. Показов 2251. Ответов 8
Метки нет (Все метки)
Пишу программу, которая взаимодействует с пользователем посредством кнопок и ящиков редактирования. Первый блин, как говорится, комом. Программа работает, но ее структура сложна и неэффективна. Работает она следующим образом.
WinMain создает окно нулевого размера, которое при создании вызывает диалоговое окно hDlg, ему по молчанию передается управление и его оконная функция обрабатывает сообщения, но, разумеется, далеко не все. Например, акселераторами не воспользоваться. У этого диалогового окна есть дочернее окно hGraph, на нем выводятся графики с помощью
0
|
|||||||||||
| 21.03.2019, 21:49 | |
|
Ответы с готовыми решениями:
8
Правильно спроектировать приложение Как правильно спроектировать бд Как правильно спроектировать БД |
|
65 / 31 / 18
Регистрация: 16.03.2019
Сообщений: 84
|
||||||
| 22.03.2019, 07:04 | ||||||
|
Здравствуйте.
Вроде бы ничего не мешает вам создавать "кнопочки" и другие дочерние окна в основном окне. Пример создания кнопки:
1
|
||||||
|
3 / 3 / 0
Регистрация: 25.03.2018
Сообщений: 9
|
||
| 22.03.2019, 13:26 [ТС] | ||
|
Создавать кнопки таким способом это забавно, но вряд ли это удобно. Чтобы создать интерфейс программы, я использую простенький редактор ресурсов. Хотелось бы все же оставить возможность использования последнего, ибо переделывать интерфейс, вручную вбивая координаты, та еще рутина.
Добавлено через 13 минут
0
|
||
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
||||||
| 22.03.2019, 14:13 | ||||||
Сообщение было отмечено waltan как решение
Решение
waltan, можно сделать, чтобы диалог стал обычным окном
![]() 1) при регистрации класса задать поле wndclass.cbWndExtra = DLGWINDOWEXTRA; 2) в диалоге задать имя класса, CLASS "MyClass". Естественно, такое же имя должно и в поле wndclass.lpszClassName = L"MyClass"; 3) После регистрации класса и создания диалога при помощи CreateDialog (hInstance, (TCHAR*)IDD_DLG, 0, NULL) получаем самое обычное окно с функцией окна, имя которой задано в классе! Добавлено через 30 минут waltan, кстати, поменять иконку в диалоге (именно в диалоге) тоже не проблема ![]()
1
|
||||||
|
3 / 3 / 0
Регистрация: 25.03.2018
Сообщений: 9
|
||||||
| 22.03.2019, 14:52 [ТС] | ||||||
|
Второй пункт мне не понятен. Что значит в диалоге задать имя класса?
Ниже приведен набросок.
0
|
||||||
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
||
| 22.03.2019, 14:59 | ||
|
Добавлено через 43 секунды И не DialogBox, а CreateDialog Добавлено через 48 секунд Почитайте, что такое модальные и немодальные диалоги
0
|
||
|
3 / 3 / 0
Регистрация: 25.03.2018
Сообщений: 9
|
|
| 22.03.2019, 15:14 [ТС] | |
|
Спасибо
, приложение заработало, как я и хотел!Не по теме: Что касается модальных и немодальных окон, то в этом я плоховато разобрался. Модальные окна, на сколько я понимаю, "перехватывают управление", не давая пользователю выбрать другое окно. В немодальных окнах нет такого ограничения, но из-за этого нужно модифицировать цикл обработки сообщений, чтобы посылать меседжи нужному окну.
1
|
|
| 22.03.2019, 16:06 | |
|
0
|
|
| 22.03.2019, 16:06 | |
|
Помогаю со студенческими работами здесь
9
Как правильно спроектировать службу? Как спроектировать систему правильно? Как правильно спроектировать Класс Как правильно спроектировать базу ? MVC. Как правильно спроектировать Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|