请教一个关于编辑框的问题!!!有关回车的问题

newsb 2001-07-16 10:13:38
我在一个对话框中添加一个edit box,我想在回车的时候处理调用一些函数
我该在那里调用这些函数?
ps:确定键我还要用(不能去掉OnOK()....)
...全文
88 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
111222 2001-07-26
BOOL CXXXXXDlg::PreTranslateMessage(MSG* pMsg)
{
if ((pMsg->message == WM_KEYDOWN) && (pMsg->wParam == VK_RETURN))
{


TCHAR szClass[10];
CWnd* pWndFocus = GetFocus();
if (((pWndFocus != NULL) && //窗口获得焦点中
IsChild(pWndFocus) )|| //是子窗口
(pWndFocus->GetStyle() & ES_WANTRETURN) &&//有ES_WANTRETURN属性
(GetClassName(pWndFocus->m_hWnd, szClass, 10) &&
((lstrcmpi(szClass, _T("EDIT")) == 0)||// 窗口类是edit
(lstrcmpi(szClass, _T("ComboBox")) == 0))))//或者ComboBox
{
pWndFocus->SendMessage(WM_CHAR, pMsg->wParam, pMsg->lParam);
AfxMessageBox("调用你需要的函数");
return TRUE;
}

return FALSE;
}

return CDialog::PreTranslateMessage(pMsg);
}
回复
liang13144 2001-07-16
code !!!
回复
liang13144 2001-07-16
谁能给我一个完整的代码,多谢
只要一个简单的例子就可以了,谢谢各位大哥
回复
liang13144 2001-07-16
谁能给我一个完整的代码,多谢
只要一个简单的例子就可以了,谢谢各位大哥
回复
Cline 2001-07-16
Overwrite the function of CDialog::PretranslateMessage(),in this function,judge the control which has focus,if it is your edit control,do some work and return,not calling the base class function,thus OnOK() will not be called!
回复
symh 2001-07-16
用SetWindowLong函数吧,具体做法如下:
比如你有两个EDIT,一个句柄为hwndEdit1,另一个句柄为hwndEdit2,然后你实现两个窗口函数,Edit1Proc,Edit2Proc,
用Edit1OldProc=SetWindowLong(hwndEdit1,GWL_WDNPROC,&Edit1Proc);
Edit2OldProc=SetWindowLong(hwndEdit2,GWL_WDDPROC,&Edit2Proc);
在Edit1Proc,Edit2Proc分别中处理WM_KEYDOWN或者是WM_CHAR消息,其余的消息传给Edit1OldProc,Edit2OldProc处理。
回复
gameboy999 2001-07-16
为你的editbox派生出一个CYourEdit
里面处理pretranslatemessage
然后在处理函数中根据不同edit调用不同函数
(没有实现完全的封装。。)
回复
newsb 2001-07-16
大家帮忙看一下嘛,我先谢过了
回复
newsb 2001-07-16
如果我有很多的edit box,在每个编辑框中回车都需要处理不同的函数
我怎么区分呢?
还有就是,在wm_keydown,wm_keyup,wm_char中分别作些什么,能说具体点吗?
回复
nickysoft 2001-07-16
用WM_KEYDOWN、WM_KEYUP和WM_CHAR

在对应的消息处理函数里调用你自己的函数。
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2001-07-16 10:13
社区公告

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