MFC 问题集(1)EDIT控件
2010-02-04 16:37
302 查看
问题:在基于对话框的MFC中添加一个EDIT控件,在里面输入数据(包括后字符)按回车想让它执行按钮控件里的代码,但默认的是在EDIT中输入完后按回车会关掉程序,怎么解决这 个问题(我把默认的OK按钮删除了,添加的是新的按钮)? 解决方法之一:
取消OK按钮的”默认“属性,并调整EDIT控件的属性,使其能够接受”Enter“键按下的事件,然后对EDIT空间添加相应的事件响应函数。但这样做可能影响其他功能的实现(比如像实现”按回车,使光标在不同的EDIT中切换“,如果OK按钮不是处于默认状态的话,就要对每个EDIT空间添加”Enter“键按下的消息响应函数)。 解决方法之二(推荐的方法):
先保证EDIT控件的"Want Return"属性是False的。不取消OK按钮的”默认“属性,对其添加一个OnBnClickedOk()函数,这样写:
void XXXX:: OnBnClickedOk()
{
if (GetDlgItem(EDIT1) == GetFocus()) //这个是检测当前的焦点是否在EDIT1控件上
{
//这里是你想要执行的代码
}else{
OnOK();
}
}
这里的EDIT1就是刚才提到的EDIT控件。
如此,不但能解决你的问题,而且还有可能对今后其他功能的添加带来便利
解决方法之三
重载PreTranslateMessage函数,让它收到回车键被按下的消息后执行你所需要的代码。给你一个例子:
BOOL CTestDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message==WM_KEYDOWN)
if(pMsg->wParam==VK_RETURN)
{
AfxMessageBox("你好");
}
return CDialog::PreTranslateMessage(pMsg);
}
取消OK按钮的”默认“属性,并调整EDIT控件的属性,使其能够接受”Enter“键按下的事件,然后对EDIT空间添加相应的事件响应函数。但这样做可能影响其他功能的实现(比如像实现”按回车,使光标在不同的EDIT中切换“,如果OK按钮不是处于默认状态的话,就要对每个EDIT空间添加”Enter“键按下的消息响应函数)。 解决方法之二(推荐的方法):
先保证EDIT控件的"Want Return"属性是False的。不取消OK按钮的”默认“属性,对其添加一个OnBnClickedOk()函数,这样写:
void XXXX:: OnBnClickedOk()
{
if (GetDlgItem(EDIT1) == GetFocus()) //这个是检测当前的焦点是否在EDIT1控件上
{
//这里是你想要执行的代码
}else{
OnOK();
}
}
这里的EDIT1就是刚才提到的EDIT控件。
如此,不但能解决你的问题,而且还有可能对今后其他功能的添加带来便利
解决方法之三
重载PreTranslateMessage函数,让它收到回车键被按下的消息后执行你所需要的代码。给你一个例子:
BOOL CTestDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message==WM_KEYDOWN)
if(pMsg->wParam==VK_RETURN)
{
AfxMessageBox("你好");
}
return CDialog::PreTranslateMessage(pMsg);
}
相关文章推荐
- MFC edit控件的一些问题
- mfc edit控件只读属性与背景颜色问题小发现
- 关于MFC中list控件的问题
- mfc 控件使用的一些小问题
- MFC 控件显示层次调整(叠放次序)和绘制控制问题
- [MFC控件]CRichEdit刷新问题
- 问题解决——MFC SDI程序 CFormView中控件随窗口缩放
- MFC程序,在改变系统DPI后,控件显示位置混乱的问题
- [MFC]如何改变对话框EDIT Control内控件的字体?
- vs2008下 MFC-Tab页子对话框中添加ocx控件 引起问题
- MFC EDIT控件自动显示垂直滚动条
- MFC控件(2):Text_Edit_Control
- MFC EDIT控件自动向下显示最新一行数据
- MFC ActiveX 控件在IE下闪烁的问题
- android中的EditText如何屏蔽软键盘以及在屏蔽软键盘弹出其它对话框之类的控件的问题
- VC单击Edit控件时全选Text及main函数的命令行参数问题
- 自绘MFC List Control列表控件时无法改变表头CHeaderCtrl高度问题的解决方法
- 关于MFC里list control控件的重叠问题
- VS2015版本MFC消息映射函数中控件ID未定义解决问题
- MFC中Rich Edit 2.0 控件中字体不一致的问题