mfc - 在对话框之间自动移动焦点
问题描述
我有一个模态对话框,在按下按钮时显示一个无模式的“伴随对话框”。为了使 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();
}
}
}
推荐阅读
- javascript - 在字符串中查找模式
- django - Nginx 502. 网关错误,但使用 CORS。我应该在生产中使用 CORS 吗?
- javascript - 谜语:为什么 onEdit 只触发在我显然从未定义过的范围内进行的编辑?还是我?
- javascript - NodeJS 或 Browser JS Thrift 客户端消费者如何内省 Thrift 响应标头?
- c++ - 如何解决 TypeError: Failed to fetch in Qt for WebAssembly?
- android - expo:build 查看 git 或文件状态吗?
- amazon-web-services - 如果主键不同,为什么获取记录,修改其主键,然后将其放回似乎会覆盖记录?
- javascript - TextInput 聚焦时如何防止 React Native 键盘缩小?
- java - 使用 lwjgl 为对象设置动画的适当框架?
- java - 检查业务规则中提供的许多动态值的最佳方法