Название: Как получить HWND окна виджета и его регион на нем? Отправлено: Caduceus от Август 31, 2009, 21:31 Есть виджет. Он в конечном итоге на Виндузовом окне (пока другие платформы не рассматриваются). Так вот мне надо получить HWND этого окна, где именно располагается на нем виджет в координатах этого окна и знать, когда виджет сдвинулся (с ресайцзом понятно). Все это надо для дочернего окна - я прям поверх виджет дочернее окно создаю (не спрашивайте зачем)
Название: Re: Как получить HWND окна виджета и его регион на нем? Отправлено: k06a от Август 31, 2009, 22:54 Вот это может поможет.
Цитировать WId QWidget::winId () const Returns the window system identifier of the widget. Portable in principle, but if you use it you are probably about to do something non-portable. Be careful. If a widget is non-native (alien) and winId() is invoked on it, that widget will be provided a native handle. Note: We recommend that you do not store this value as it is likely to change at run-time. Возможно понадобится вот этот атрибут: Qt::AA_NativeWindows - Ensures that widgets have native windows. Вот насчет позиции окна: Цитировать QRect QWidget::geometry; This property holds the geometry of the widget relative to its parent and excluding the window frame. When changing the geometry, the widget, if visible, receives a move event (moveEvent()) and/or a resize event (resizeEvent()) immediately. If the widget is not currently visible, it is guaranteed to receive appropriate events before it is shown. The size component is adjusted if it lies outside the range defined by minimumSize() and maximumSize(). Warning: Calling setGeometry() inside resizeEvent() or moveEvent() can lead to infinite recursion. See the Window Geometry documentation for an overview of window geometry. By default, this property contains a value that depends on the user's platform and screen geometry. Access functions: const QRect & geometry () const void setGeometry ( int x, int y, int w, int h ) void setGeometry ( const QRect & ) И всё-таки интересно зачем это? Не проще ли внутри одного виджета менять всё в таком случае? Каюсь - однажды пользовался: Цитировать void QMainWindow::setCentralWidget ( QWidget * widget ) Название: Re: Как получить HWND окна виджета и его регион на нем? Отправлено: Caduceus от Сентябрь 01, 2009, 09:19 Ага, спасибо большое. Буду копать.
Цитировать И всё-таки интересно зачем это? Просто есть игровой движок. Он создается в окне. Я это окно и буду все время держать над нужным виджетом. Пытаться перегнать весь игровой движок на колеса Qt - это проще убиться об стену. Ответил? |