Автоматически перемещать фокус между диалоговыми окнами
У меня есть модальный диалог, который показывает немодальное "сопутствующее диалоговое окно" при нажатии кнопки. Чтобы сделать пользовательский интерфейс более интуитивным и плавным, я бы хотел, чтобы фокус следовал за мышью и перемещался между диалоговыми окнами, не требуя дополнительного щелчка.
Здесь поможет простой обработчик сообщений? Думаю, я мог бы сделать это, используя
TrackMouseEvent
и
OnMouseHover
в каждом диалоге - но это кажется довольно сложным для такого "простого" эффекта?
1 ответ
Ладно... так что я совсем над этим подумал! Просто используйте
OnMouseMove
и
OnNcMouseMove
:
//------------------------------------------------------------------------------
void DlgA::OnMouseMove(UINT nFlags, CPoint point)
//------------------------------------------------------------------------------
{
HWND hwnd = ::GetActiveWindow();
if (pDlgB != NULL)
{
if (hwnd == pDlgB->GetSafeHwnd())
{
// Make the focus switch automatically
SetFocus();
}
}
}