crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Qt setParent (WinAPI)
Гость_Andrey_*
сообщение 24.11.2010, 1:09
Сообщение #1





Гости








    


Есть такая проблема. Внедрил main form qt приложения в vcl mdi форму сишного приложения средствами Win API. Все отлично внедрилось, отрисовка работает, клавиатурные события обрабатываются, но мышь...
Вобщем qt форма продолжает использовать глобальные координаты вместо локальных. При этом весьма странное дело, какие то виджеты используют локальные координаты и ведут себя нормально, а какие глобальные и гонят...
Че токо не пробовал со стороны сишного приложения чтобы исправить дело (средствами winapi), но ниче не помогает.
Видимо придется менять в qt части (код доступен), вот только с чего начать не знаю.
Какие будут предложения коллеги :)

Забегая вперед скажу что пенести все в одну среду пока не вариант. Каждая составляющая 10000яч строк кода и написана разными людьми, так что пока нет возможности собрать все в кучу.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Алексей1153
  опции профиля:
сообщение 24.11.2010, 21:09
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Цитата(sadhu @ 24.11.2010, 17:18) *
MFC никого не смущает, потому что, с любыми winApi приложениями оно дружит ни разу не меньше.

ибо это практически одно и то же ;) Только с классами



Цитата(Гость_Andrey_* @ 24.11.2010, 22:08) *
использовался чистый winapi уже в созданное окно с известным хендлом. делалось по нажатию на кнопку например. И встроилось все корректно и события qt работали корректно, единственное была проблма только с мышью....

в отладчике можно глянуть, как путешествует координата. В оконной процедуре для сообщений WM_*BUTTON*
Цитата
(http://msdn.microsoft.com/en-us/library/ms645607(VS.85).aspx)
lParam
The low-order word specifies the x-coordinate of the cursor. The coordinate is relative to the upper-left corner of the client area.
The high-order word specifies the y-coordinate of the cursor. The coordinate is relative to the upper-left corner of the client area.


и ты дальше перекидывал координаты без изменений? Вот и будет косяк. Примени MapWindowPoints
http://msdn.microsoft.com/en-us/library/dd145046(VS.85).aspx
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.12.2024, 16:06