我有一个模态对话框,在按下按钮时显示一个无模式的“伴随对话框”。为了使 UI 更加直观和流畅,我希望焦点跟随鼠标并在对话框之间移动,而无需额外点击。
是否有一个简单的消息处理程序可以在这里提供帮助?我想我可以通过在每个对话框中使用TrackMouseEvent
and来做到这一点OnMouseHover
——但对于这种“简单”的效果来说,这似乎很重要?
我有一个模态对话框,在按下按钮时显示一个无模式的“伴随对话框”。为了使 UI 更加直观和流畅,我希望焦点跟随鼠标并在对话框之间移动,而无需额外点击。
是否有一个简单的消息处理程序可以在这里提供帮助?我想我可以通过在每个对话框中使用TrackMouseEvent
and来做到这一点OnMouseHover
——但对于这种“简单”的效果来说,这似乎很重要?
好的……所以我完全想多了!只需使用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();
}
}
}