关于CEdit焦点的问题.
「已注销」 2014-04-29 10:14:01 现在做的一个项目中,有许多对话框,基本都是create出来的非模态对话框 ,各个对话框之间的显示都是sw_show,sw_hide.
类似于:
void CXXXX::Button1()
{
dlg1.showwindow(TRUE);
dlg2.showwindow(FALSE);
}
在这些窗口上会有一些输入框,并且处理了输入框 的en_setfocus消息,在有焦点的时候默认做一些处理.
现在有一个问题就是在窗口切换显示的时候,并不想让输入框默认得到焦点(MFC是默认会让子控件得到焦点).初始化initdlg的时候return了FALSE,窗口第一次显示的时候已经可以了。
但是当类似上面的代码运行的时候 ,要显示的窗口里的子控件如cedit,还是会得到焦点.现在不知道 怎么处理.
也加了些setfocu,和killfocus的处理,但效果不好.
比如
void CXXXX::Button1()
{
dlg1.showwindow(TRUE);
dlg2.sendmessage(wm_kllfoucs, 0, 0);
dlg2.showwindow(FALSE);
}
void dlg2::onkillfocus()
{
SendDlgItemMessage(IDC_EDIT_SEARCHINPUT, WM_KILLFOCUS, 0, 0);
}
这样处理过后,切换回dlg2显示,还是会让输入框 得到setfocus消息。