很简单但又很难的问题

xiaoma208 2003-08-22 10:52:45
我现在有一个对话框,上面只放了一个编辑框, 我希望当鼠标点击了对话框的任何位置(编辑框的区域除外)的时候让编辑框失去输入焦点, 怎么做?
...全文
54 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
akiko 2003-08-23
  • 打赏
  • 举报
回复
CXXXDialog添加BOOL m_b;初始化为FALSE.
void CXXXDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
GetDlgItem(IDC_EDIT1)->SendMessage(WM_KILLFOCUS,0,0);
m_b=TRUE;
CDialog::OnLButtonDown(nFlags, point);
}
BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg)
{
if((pMsg -> message == WM_KEYDOWN) && (m_b))
return TRUE;
else if(pMsg -> message == WM_LBUTTONDOWN)
m_b=FALSE;
return CDialog::PreTranslateMessage(pMsg);
}
cy214 2003-08-23
  • 打赏
  • 举报
回复
响应WM_LBUTTONDOWN消息 然后使用API的函数
::SetFocus(this->m_hWnd);
把焦点设为当前窗口即可(此时焦点会按照你窗口中控件taborder的设置停在taborder值最小的那个控件上)
cattydid 2003-08-23
  • 打赏
  • 举报
回复
重载对话框的鼠标消息
tanyaliji 2003-08-23
  • 打赏
  • 举报
回复
增加一个编缉框,把它设置为不可见
当鼠标点击了对话框的任何位置时,把焦点给新增加的编缉框
招财猫_Martin 2003-08-22
  • 打赏
  • 举报
回复
增加一个编缉框,把它设置为不可见
当鼠标点击了对话框的任何位置时,把焦点给新增加的编缉框就可以了
harrypotter 2003-08-22
  • 打赏
  • 举报
回复
那你准备把焦点设置到哪儿那。

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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