Может кто-то сталкивался с таким?
Есть главное окно программы (CDialog), на нем кнопка Settings при нажатии которой открывается модальное диалоговое окно со страницами свойств.
Все страницы свойств работают, но если перейти с первой на любую другую, и перекрыть это окно другим, то программа входит в бесконечный цикл и виснет.
Если перекрытия другим окном нет, то все работает нормально и зависаний нет.
Вот пример (проект в visual c++ .Net 2003)
http://users.i.com.ua/~vfil/tabs-freeze.rar (65kb)
Если с page1, например, перейти на page2 и потом перекрыть это окно любым другим, то программа зависнет.
Нашел в msdn похожую проблему (http://support.microsoft.com/kb/149501), но по инструкции не удалось устранить зависание.
Может кто-то сталкивался с таким? Что я неправильно делаю? Подскажите, плиз, как избавится от этого зависания.
Добавлено: Мне уже помогли разобраться.
Нужно определить обработчик сообщения WM_ACTIVATE:
ON_MESSAGE(WM_ACTIVATE, OnActivate)
***
LRESULT CYourSheetParentWnd::OnActivate(WPARAM wParam, LPARAM lParam)
{
if (wParam == WA_INACTIVE)
{
return ::DefWindowProc(m_hWnd,WM_ACTIVATE,wParam,lParam);
}
return CYourSheetParentWnd::DefWindowProc(WM_ACTIVATE,wParam,lParam);
}