如何在编辑框m_Edit输入完成后,敲击回车键,将编辑框中的内容传到别的编辑框中。

Z_Beginner 2005-03-24 01:18:18
我建了一个Dialog。每次一点击回车键,Dialog就关闭了。该如何实现标题功能?
...全文
285 点赞 收藏 11
写回复
11 条回复
ShingFish 2005年03月24日
你可以在PreTranslateMessage处理回车键:
BOOL CDlgDlg::PreTranslateMessage(MSG* pMsg)
{

if(pMsg->message == WM_KEYDOWN)
{
if(pMsg->wParam == VK_RETURN)
{
UINT nID = GetFocus()->GetDlgCtrlID();
switch( nID)
{
case IDOK:
break;
default:
NextDlgCtrl();
return TRUE;
}
}
}
}

这里特别处理IDOK是由于Enter键在对话框中默认动作是触发OK按钮。如果你不想这么处理,可以删除有关语句。
回复 点赞
4inSky 2005年03月24日
楼上的方法是正确的,你重载一下OnOk函数,然后删除CDialog::OnOK函数,在你想处理的时候在加上,以后就没有事情了,

还有,如果你想将编辑框中的内容传到别的编辑框中,你可以响应编辑框的回车事件,在哪里处理函数就可以了。
回复 点赞
ghgk 2005年03月24日
由VC向导生成的MFC对话框有两个按钮,其中ok按钮具有default button属笥。即在对话框中按下回车,系统自动寻找具有default buttonn属性的按钮,并传送这个按钮被点击或按下的消息。而由VC向导生在怕MFC对话框程序中在生成这两个按钮的同时也提供了这两个按钮被按下的消息处理。OK键是update后对话框退出,其对应回车。而Cancel键是直接退出,其对应ESC键。update是对话类的一个方法,作用是更新对话框中绑定的对像变量。
删除掉这两个按钮后按下回车也还是会退出这是因为,具有default button属性的按钮系统对其消息的处理是并不直接通过这个按钮的。而是另外生成一条消息送进程序消息队列得到执行的。
因此,如果你不想按下回车就退出。那就得自行处理这个按钮的消息处理。简单一句话,对着这个按钮双击,回车确定。删掉这一句代码 CDialog::OnOK();
回复 点赞
poooorgun 2005年03月24日
如果这两个按钮是自己生成的话
回复 点赞
poooorgun 2005年03月24日
这样的对话框的默认焦点在确定按钮上
回复 点赞
Z_Beginner 2005年03月24日
我是在 文件->新建->MFC AppWizard[exe]的下一步创建一个
基本对话框。是什么导致点击回车键关闭对话框的。
回复 点赞
oyljerry 2005年03月24日
PreTranslateMessage拦截回车键,然后处理数据的传递
回复 点赞
poooorgun 2005年03月24日
重载view类下的onkeydown消息函数:
void CmyView::OnkeyDown(UNIT nChar,UNIT nRepCnt,UNIT nFlags)
{
if(nChar==VK_ENTER)
{
传数据
}
}
回复 点赞
inpriser 2005年03月24日
取消按钮的Default Button属性
或者在Dialog::OnOk()中加入
CWnd *pWnd = GetFocus();
if (pWnd->GetDlgCtrlID() != IDOK)
{
NextDlgCtrl();
return;
}
CDialog::OnOK();
回复 点赞
xuzheng318 2005年03月24日
设置焦点你窗口的焦点!
回复 点赞
pomelowu 2005年03月24日
截获回车按键消息
回复 点赞
发动态
发帖子
VC/MFC
创建于2007-09-28

7889

社区成员

42.1w+

社区内容

VC/MFC相关问题讨论
社区公告
暂无公告