不想在对话框的CEdit控件里一按回车就关闭窗口,请问怎么做?可以逐字检查CEdit控件

smae 2000-12-09 08:55:00
...全文
3065 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
smae 2000-12-12
  • 打赏
  • 举报
回复
实在找不到en_selchange
adidasprince 2000-12-12
  • 打赏
  • 举报
回复
如果要逐字检查可以先设置编辑框的2个属性:MultiLine,Want return
添加一个CString变量m_strEdit
再重载EN_CHANGE
OnChangeEdit()
{
CString strEdit;
strEdit = m_strEdit;
UpdateData(TRUE);
if (strEdit == m_strEdit)
{
// do sth when user press enter key
}
else
{
// do sth when user press other key
}
}
xiaoyuer 2000-12-12
  • 打赏
  • 举报
回复
去掉default button这个方法并不好,不信你试试!敲回车仍然会关闭窗口
比较简单的方法是选择另外一个按钮,给他选上default button属性,
还有一种方法是使用加速建屏蔽掉(同样可以屏蔽掉ESC建),可以和我联系
xiaoyuer_21@263.net
to hidy:应该是EN_CHANGE吧。选择CEdit控件,单击右建,选择Events...即可看见EN_CHANGE.
writeus 2000-12-12
  • 打赏
  • 举报
回复
问题的原因是这样的:<br>
当你的对话框中含有按钮,并且至少有一个按钮的'Default Button' 属性为选中,
则你的对话框处于激活状态时,无论你在Edit中按回车还是在别的地方回车,都会激活
具有'Default Button' 属性的按钮的OnClick事件!只要你去掉按钮的'Default Button' 属性
即可。
Hidy 2000-12-11
  • 打赏
  • 举报
回复
找不到EN_SELCHANGE?
不是吧,打开类向导难道会找不到?
ecore 2000-12-11
  • 打赏
  • 举报
回复
不就是把CEdit的属性选上“want return”么?
shaohua 2000-12-11
  • 打赏
  • 举报
回复
逐字检查?不太明白!
倒是“不想在对话框的CEdit控件里一按回车就关闭窗口”非常容易。
有兴趣的话,可以和我联系:itwxf@21cn.com
shaohua 2000-12-11
  • 打赏
  • 举报
回复
逐字检查?不太明白!
倒是“不想在对话框的CEdit控件里一按回车就关闭窗口”非常容易。
有兴趣的话,可以和我联系:itwxf@21cn.com
smae 2000-12-11
  • 打赏
  • 举报
回复
重载OnChar和PreTranslateMessage都不能逐字检查CEdit
我也找不到CEdit的EN_SELCHANGE
哪位高人可以举个例子
zhaowuqing 2000-12-11
  • 打赏
  • 举报
回复
Agree ecore
vcmfc 2000-12-09
  • 打赏
  • 举报
回复
逐字检查CEdit控件响应Edit的EN_SELCHANGE
支持中文哦 2000-12-09
  • 打赏
  • 举报
回复
重载OnChar应该可以搞定
happylaodu 2000-12-09
  • 打赏
  • 举报
回复
这是因为对话框接收到return时会自动响应OnOK(),而接到esc时会自动响应OnCancel()。
按照书上的说法,要解决这种问题:
1. 生成IDOK按钮的处理函数,把其中的CDialog::OnOK();语句删掉。

2. 在对话框编辑器中把IDOK键的default button属性去掉,并把按钮的ID改为ID_OK

3. 再生成ID_OK的处理函数,函数名要改一下,比如OnClickedOK(),加上CDialog::OnOK();语句;
注:以后点击OK按理执行的是这个函数,若有其它工作要作, 要加到这个函数中来。而原先的IDOK按钮的处理函数将不再起作用。
Hidy 2000-12-09
  • 打赏
  • 举报
回复
如果你的对话框里有IDOK按钮,那么就用类向导添加其处理函数OnOK,

否则可以在头文件的 //{{AFX_MSG 宏里加上 afx_msg void OnOK();
在 BEGIN_MESSAGE_MAP 宏里加上 ON_COMMAND(IDOK, OnOK)
再定义 void YourClass::OnOK() { }; 就 OK 啦。

这样一来你在EDIT控件里按回车会运行OnOK,窗口不会关闭,你还可以为所欲为呢。
sxbyl 2000-12-09
  • 打赏
  • 举报
回复
将Edit的属性设为Want Return
formula 2000-12-09
  • 打赏
  • 举报
回复
设置默认按键
SetDefID(...)
jsyou 2000-12-09
  • 打赏
  • 举报
回复
重载PreTranslateMessage就可以了。
Hidy 2000-12-09
  • 打赏
  • 举报
回复
处理EN_SELCHANGE当然可以。
smae 2000-12-09
  • 打赏
  • 举报
回复
能够象vb的keypress一样逐个检测打入的字符吗?
ab 2000-12-09
  • 打赏
  • 举报
回复
设成 Want Return 不行吗?
加载更多回复(1)

16,548

社区成员

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

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

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