• Добро пожаловать на Quest3D - Русскоязычное сообщество.
 

Новости:

Форум Quest3D восстановлен!

Главное меню

Перемещаемое GUI

Автор Alteste, 21 июня 2010, 11:27:46

« назад - далее »

Alteste

Как сделать блок с GUI перемещаемым при помощи мышки? Как обычное окно виндовс

DimiS

отслеживать когда произошел клик по прямоугольнику твоего окошка, далее изменять координаты твоего окошка в соответствиями с изменением координат мышки
как то так

Ruslan

Alteste
Зеленым я пометил участок, где провожу проверку на то, что указатель мышки не находится на некоторых компонентах GUI.

Alteste

При использовании Win32 SetWindow - со всеми снятыми галочками окно проекта появляется чистое, без рамок и верхней панели. Как в самом квесте сделать свою панель, за которую можно было бы таскать мышкой окно проекта?

DimiS

никак, в самом квесте никак
можешь сделать свой ченел который будет отправлять твоему окну новые координаты и в квесте поместить всю логику по рисвоанию панельки и обработке клика по ней
ещё можеш написать такой ченел, который будет просто виндовыми средствами рисовать нужную тебе верхнюю панель

dfx

#5
ЦитироватьПри использовании Win32 SetWindow - со всеми снятыми галочками окно проекта появляется чистое, без рамок и верхней панели. Как в самом квесте сделать свою панель, за которую можно было бы таскать мышкой окно проекта?

Цитироватьникак, в самом квесте никак

Что то мне подсказывает, что такое можно сделать.
Такой подход пробовали? -

Псевдокод:
onMouseDown
windowPosX = mouseScreenPosX-mouseViewPortPosX
mouseOffsetX = mouseScreenPosX
windowPosY = mouseScreenPosY-mouseViewPortPosY
mouseOffsetY = mouseScreenPosY
onMousePressed
SetWidowPos(
X = (mouseScreenPosX - mouseOffsetX)+windowPosX,
Y = (mouseScreenPosY - mouseOffsetY)+windowPosY)


Добавлено позже:

Попробовал, вроде работает.(см. вложенный файл)

Ruslan

dfx
Как это применять в реальном проекте, и есть ли в этом смысл?

DimiS

да, действительно можно, каюсь
чёто завтыкал что у канала СетВиндоу можно ещё и координаты окна передавать

dfx

to Ruslan.
Наверное есть ситуации, где это может понадобиться. Только почему этот вопрос адресован мне?

Ruslan

#9
dfx
Можете не отвечать, я предположил, что вы подскажете, где этот метод может быть полезен, раз вы его привели.
Вопрос в теме был:
ЦитироватьКак сделать блок с GUI перемещаемым при помощи мышки? Как обычное окно виндовс
Вот я и спрашиваю, возможно ли при помощи описанного выше метода создать несколько окон, привязать к ним группы элементов ГУИ, и что бы можно было мышкой передвигать эти окна, вместе с элементами, в основном окне приложения?

dfx

Руслан, это ответ на вопрос, где Alteste спросил, как перетаскивать окно проекта, если к нему применен стиль без рамок и заголовка. Я специально вывел цитаты, что бы было понятно. :) Я думаю, что это может понадобиться, если нужен уникальный вид окна проекта. Я не исключаю таких ситуаций, но сам с ними не сталкивался. Будьте внимательнее, пожалуйста.