www.map-info.ru :: Просмотр темы - Синхронизация фокуса переподчиненных окон карты через HWND
                               РќР° главную страницу сайта

 
                                
ВходВход    РегистрацияРегистрация    ПрофильПрофиль    ПользователиПользователи    ГруппыГруппы    FAQFAQ    ПоискПоиск  

 
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Предыдущая тема :: Следующая тема  
Автор Сообщение
sunzh



Зарегистрирован: 13.05.2006
Сообщения: 19

СообщениеДобавлено: Ср Мар 04, 2015 10:36 pm    Заголовок сообщения: Синхронизация фокуса переподчиненных окон карты через HWND Добавить ответ со ссылкой на данный текст

Собственно как?
Простенькая вроде бы задача, завела в тупик.
Суть проблемы:
Есть PageControl в форме, которая может менять размер.
Во вкладках переподчиненные окна карты.

При обработке MoveWindow необходимо указать HWND активного окна.
НО, при переключении вкладок активизация переподчиненного окна не происходит, и функция MoveWindow получает HWND прошлого активного окна (расположенного на другой вкладке) и при изменении размера формы и расположенного в ней пейджконтрола, перерисовка текущего окна не происходит.

Пошел двумя путями:
Использовал в MoveWindow вместо Evaluate, GetWindow(HWND,GW_CHILD)
HWND возвращается корректно, но при перерисовке возникают артефакты, я думаю и зз-за ошибок синхронизации совместного доступа потоков моей программы и мапинфо к переподчиненному окну. Которое к тому же во время перерисовки неактивно (без фокуса).
Второй путь:
При переключении вкладок посылал сообщения Окну карты найденному через GetWindow. Сообщения отследил SPY++ там ничего особенного
При активизации окнe карты прилетает WM_SETFOCUS и WM_CHILDACTIVATE (может быть нужное сообщение отфильтровал в настройках?) ВОТ ТУТ МЕНЯ ОСЕНИЛО.
Попробовал WM_MOUSEACTIVATE, работает как надо!
Тестировал через beep в WiNFOCUSCHANGED :
на сетфокус и чайлд активейт тоже пикает, но окно не активизируется.
На маусактивейт и пикает и активизируется. Помощь не требуется, но ситуация типичная, может кому то будет интересно.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Top.Mail.Ru