MFC SetFocus与GetFocus并没有成功

sty_app 2019-04-02 10:57:47

BOOL ABCDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_LBUTTONDOWN)
{
if(GetFocus() != this)
{
::SetFocus(this->GetSafeHwnd());
}
}
...
}


为什么左键点击对话框的时候, GetFocus() != this 一直成立呢
...全文
554 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
schlafenhamster 2019-04-02
  • 打赏
  • 举报
回复
记住“因为焦点实际是在对话框的控件上”
向立天 2019-04-02
  • 打赏
  • 举报
回复
对话框的焦点我觉得首先就是个伪命题
因为焦点实际是在对话框的控件上
一般不建议通过有没有焦点这样的条件来作为判断依据
你具体需求是什么,可不可以通过其他的条件判断来实现
sty_app 2019-04-02
  • 打赏
  • 举报
回复
引用 1 楼 向立天 的回复:
怎么个没成功,你的目的是什么

这段代码的逻辑是,当左键点击对话框的时候,如果当前焦点不在该对话框上,则将焦点设置为该对话框。
实际运行结果就是,GetFocus() != this,一直成立,意思就是::SetFocus(this->GetSafeHwnd()); 并没有设置成功啊
向立天 2019-04-02
  • 打赏
  • 举报
回复
怎么个没成功,你的目的是什么

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧