|
Модераторы: Rickert, Alexeis, BorisVorontsov |
|
aam1go |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 3.11.2015 Репутация: нет Всего: нет |
Ребят, очень надеюсь на вашу помощь, хотелось бы узнать.
Предположим у нас есть пустое окно на Winapi 800,600 , так вот, есть ли возможность, а я думаю есть, создать Directx Область размером в 400х400 на этом окне, чтобы остальное место занять элементами управления, т.е кнопочками и эдитами и прочим, как это сделано в редакторах карт и прочих в играх? Второй вопрос, можно ли сделать это в QT так, чтобы я мог создавать эти кнопки и раскидывать так как надо с помощью контруктора а не с помощью Winapi по координатам? Этот вопрос не требует ответа типа да и нет. Покажите пример, который можно применить, очень надеюсь на вашу помощь) |
|||
|
||||
Sajtran |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 15.10.2008 Где: Мегион Репутация: нет Всего: 2 |
а что мешает в этом окне создать ещё одно дочернее окно(панель) нужного размера?
Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
BorisVorontsov |
|
|||
Thinker Профиль Группа: Комодератор Сообщений: 714 Регистрация: 3.11.2005 Где: Молдавия, г. Киши нёв Репутация: 1 Всего: 10 |
То, что ты хочешь, называется viewport: https://msdn.microsoft.com/en-us/library/wi...p/bb206341.aspx Но это неправильное решение. Правильное озвучено товарищем выше: размести на основном окне дочернее окно Qt, которое будет выполнять роль поверхности вывода, компоненты размести вокруг него. -------------------- [code=cpp] const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out); for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl; [/code] |
|||
|
||||
math64 |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: нет Всего: 72 |
Если Вы работаете в Qt - с ним идет несколько примеров с QGLWidget.
Создаешь в QtCreator главное окно с формой, редактируешь элементы управления, предпочтительно в QDockWidget, а дальше заменяешь центральный виджет:
Также можно использовать qml. Там есть компонент Canvas3D Это сообщение отредактировал(а) math64 - 8.12.2015, 10:54 |
|||
|
||||
Merlin_ua |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 22.11.2006 Репутация: нет Всего: нет |
А как насчет QT c Direct3D?
|
|||
|
||||
Alexeis |
|
|||
Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 5 Всего: 459 |
winId() возвращает HWND главного окна. Для дочерних окон там сложнее. Изначально виджеты создаются без Windows окон. Есть только одно главное. Но технически Qt позволяет создавать окна и для других виджетов. Есть проект qtwinmigrate, который позволяет интегрировать Qt приложение с WinApi кодом и наоборот. Проект старый, но с 5м Qt работает корректно.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
KaldYn |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 14.9.2016 Репутация: нет Всего: нет |
т.е. с помощью qtwinmigrate точно получится, подобный вопрос тоже актуален. |
|||
|
||||
Alexeis |
|
|||
Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 5 Всего: 459 |
qtwinmigrate позволяет интергрировать WinApi окна в Qt приложении или же встраивать Qt Widget-ы в WinApi приложение (они это называют mfc приложение, но интеграция делается на уровне WinApi, от mfc зависимостей нет). Собственно для использования DirectX требуется привязка к Windows окну. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Marcus22 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 14.8.2017 Репутация: нет Всего: нет |
Не работает обновление окна в С++ WinAPI
|
|||
|
||||
Вы можете найти полезным что... | |
|
|
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |