Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Как сделать активное дочернее окно


Автор: Anton Vatchenko 17.3.2006, 17:56
Мне нужно, чтобы при создании дочернего окна родительское было тоже активным, и дочернее окно можно было вытащить за пределы родительского - как во многих программах, где можно иметь доступ одновременно к двум окнам, перемещать одно за пределы другого, но чтобы родительское окно было всегда под дочерними.

Автор: _hunter 17.3.2006, 18:32
FormStyle в fsStayOnTop поставь...

Автор: Anton Vatchenko 17.3.2006, 18:46
Я пока так и делаю, но родительское окно становится неактивным.
P.S. использую WinAPI

Автор: Earnest 17.3.2006, 18:53
Что значит "неактивно"? Не реагирует на клики или заголовок серый? И как ты открываешь дочернее окно?

Автор: Anton Vatchenko 17.3.2006, 20:40
Earnest, заголовок серый. Создаю дочернее окно как обычное окно WS_OVERLAPPED и нигде родительское не указываю.

Автор: Fixin 17.3.2006, 21:25
А как немодальный диалог не катит?

Автор: Anton Vatchenko 20.3.2006, 17:47
Fixin, мне не нужен диалог. Мне нужно сгенерированное мною окно.

Автор: _hunter 20.3.2006, 18:15
само-собой заголовок серым будет.
а системе может быть только одно top-most окно.

Автор: Earnest 20.3.2006, 18:45
1) В качестве парента при создании дочернего окна все же надо указывать родительское.
2) Чтобы у родительского окна заголовок всегда был активен (если активно дочернее окно), это по-моему руками делать надо - отслеживать WM_NCACTIVATE. По крайней мере, так в MFC-фреймворке сделано.
Т.е. если wParam=FALSE, то проверить, не активен ли наш чайлд, и если да, то вернуть 0 - типа не надо ничего делать. Как-то так.

Автор: Anton Vatchenko 20.3.2006, 20:19
_hunter
Да? А ты запусти Visual Studio и выбери свойства или исходника, или элемента диалога. Появляется окно а-ля диалог, и окно VS не серое, и свойства тоже, и управлять обеими можно. Такое есть во многих программах. Раз такое можно сделать с диалогами, то и с обычными окнами тоже.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)