Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание DirectX не на все окно, Создание DirectX не на все окно 
:(
    Опции темы
aam1go
Дата 3.11.2015, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 3.11.2015

Репутация: нет
Всего: нет



Ребят, очень надеюсь на вашу помощь, хотелось бы узнать.

Предположим у нас есть пустое окно на Winapi 800,600 , так вот, есть ли возможность, а я думаю есть, создать Directx Область размером в 400х400 на этом окне, чтобы остальное место занять элементами управления, т.е кнопочками и эдитами и прочим, как это сделано в редакторах карт и прочих в играх?

Второй вопрос, можно ли сделать это в QT так, чтобы я мог создавать эти кнопки и раскидывать так как надо с помощью контруктора а не с помощью Winapi по координатам?

Этот вопрос не требует ответа типа да и нет. Покажите пример, который можно применить, очень надеюсь на вашу помощь)
PM MAIL   Вверх
Sajtran
Дата 4.11.2015, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 15.10.2008
Где: Мегион

Репутация: нет
Всего: 2



а что мешает в этом окне создать ещё одно дочернее окно(панель) нужного размера?

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
BorisVorontsov
Дата 9.11.2015, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 1
Всего: 10



Цитата(aam1go @  3.11.2015,  16:05 Найти цитируемый пост)
Покажите пример, который можно применить, очень надеюсь на вашу помощь) 

То, что ты хочешь, называется 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]
PM MAIL ICQ GTalk   Вверх
math64
Дата 7.12.2015, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: нет
Всего: 72



Если Вы работаете в Qt - с ним идет несколько примеров с QGLWidget.
Создаешь в QtCreator главное окно с формой, редактируешь элементы управления, предпочтительно в QDockWidget,
а дальше заменяешь центральный виджет:
Код

class GLWidget : public QGlWidget { ... };

MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent), ui(new UI::MainWindow)
{
   ui->setupUi(this);
   glWidget = new GlWidget(this);
   setCentralWidget(glWidget);
   ...
}


Также можно использовать qml. Там есть компонент Canvas3D

Это сообщение отредактировал(а) math64 - 8.12.2015, 10:54
PM   Вверх
Merlin_ua
Дата 15.10.2016, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 22.11.2006

Репутация: нет
Всего: нет



А как насчет QT c Direct3D?
PM MAIL   Вверх
Alexeis
Дата 15.10.2016, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 5
Всего: 459



winId() возвращает HWND главного окна. Для дочерних окон там сложнее. Изначально виджеты создаются без Windows окон. Есть только одно главное. Но технически Qt позволяет создавать окна и для других виджетов.  Есть проект qtwinmigrate, который позволяет интегрировать Qt приложение с WinApi кодом и наоборот. Проект старый, но с 5м Qt работает корректно.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
KaldYn
Дата 29.10.2016, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 14.9.2016

Репутация: нет
Всего: нет



Цитата(Alexeis @ 15.10.2016,  17:17)
winId() возвращает HWND главного окна. Для дочерних окон там сложнее. Изначально виджеты создаются без Windows окон. Есть только одно главное. Но технически Qt позволяет создавать окна и для других виджетов.  Есть проект qtwinmigrate, который позволяет интегрировать Qt приложение с WinApi кодом и наоборот. Проект старый, но с 5м Qt работает корректно.

т.е. с помощью qtwinmigrate точно получится, подобный вопрос тоже актуален.
PM MAIL   Вверх
Alexeis
Дата 29.10.2016, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 5
Всего: 459



Цитата(KaldYn @  29.10.2016,  12:02 Найти цитируемый пост)
т.е. с помощью qtwinmigrate точно получится, подобный вопрос тоже актуален. 

qtwinmigrate позволяет интергрировать WinApi окна в Qt приложении или же встраивать Qt Widget-ы в WinApi приложение (они это называют mfc приложение, но интеграция делается на уровне WinApi, от mfc зависимостей нет). Собственно для использования DirectX требуется привязка к Windows окну.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Marcus22
Дата 22.8.2017, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 14.8.2017

Репутация: нет
Всего: нет



 Не работает обновление окна в С++ WinAPI
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.1292 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.