Автоматически перемещать фокус между диалоговыми окнами

У меня есть модальный диалог, который показывает немодальное "сопутствующее диалоговое окно" при нажатии кнопки. Чтобы сделать пользовательский интерфейс более интуитивным и плавным, я бы хотел, чтобы фокус следовал за мышью и перемещался между диалоговыми окнами, не требуя дополнительного щелчка.

Здесь поможет простой обработчик сообщений? Думаю, я мог бы сделать это, используя 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();
        }
    }
}
Другие вопросы по тегам