Установка фокуса на дочернее окно
void MyPrg::OnShowWindow(BOOL bShow, UINT nStatus)
{
CDialog::OnShowWindow(bShow, nStatus);
if(bFirstShow) return;
bFirstShow = true;
CMyWnd2 *sf;
sf = new CMyWnd2();
sf->DoModal();
delete sf;
}
А в выводе дочернего окна:
void CMyWnd2::OnShowWindow(BOOL bShow, UINT nStatus)
{
CDialog::OnShowWindow(bShow, nStatus);
::SetFocus(m_hWnd);
}
При этом фокус на дочернее окно не устанавливается!
Как быть?
На то он (диалог) и модальный
Цитата:
Originally posted by dinasok51
DoModal() захватывает фокус автоматически и дополнительно SetFocus не нужен.
На то он (диалог) и модальный
DoModal() захватывает фокус автоматически и дополнительно SetFocus не нужен.
На то он (диалог) и модальный
Попробуй по вызвать окно родителя по комбинации клавиш и в моем случае фокус не устанавливается, а вот если вызывать по клику мышки или через меню - то все ОК!
Я нашел решение:
::SetForegroundWindow(m_hWnd);