easy 怎样截获编辑框(CEdit)的回车事件? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 应该有消息映射吧。是什么我就忘记了。自己查找msdn吧。 可以用一个隐藏的默认Button代替! 在PreTranslateMessage中进行判断:if( pMsg->hwnd == m_edit.m_hWnd && pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN ){ ...} 重CEdit继承 在新类里相应WM_keydown并检测字符是否=回车 如果等就发送一个自定义消息.然后使用你自己的类就好了 同意sans的办法·但是bollom的办法是一个绕弯子的办法。 可以重载CEdit类,并在派生类中处理WM_CHAR消息。 對, 在PreTranslateMessage 中處理 ,if( pMsg->hwnd == m_edit.m_hWnd && pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN ){ // 在這里發送Message, 然后在 Owner 中截获 這個消息 NMHDR nm; nm.hwndFrom = m_hWnd; nm.idFrom = GetDlgCtrlID(); nm.code = NM_RETURN; GetOwner()->SendMessage(WM_NOTIFY, nm.idFrom, (LPARAM)&nm);}在 Owner 的頭文件中定義: afx_msg void OnEditReturn(NMHDR*, LRESULT* );然后在 Owner 的.cpp 中 定義 消息 映射 ON_NOTIFY(NM_RETURN, 這是控件ID, OnEditReturn)就可以了 如何用程序打开一个文件夹? 急救!如何在基于MFC的程序中用opengl画一个三维的圆柱体 CStatic的HDC如此霸道! 怎么判断窗口移出屏幕了? 900分, 谁有工资管理系统的源代码?用VC++做的,发到[email protected]好吗???高分!! 在MFC中 TRACE0(""); 是做什么用的? 急!急! 在VC中怎么得到微秒的时间?在线等待,给分100! 如何在程序打开ODBC配置的程序? vc 正则表达式用法 驱动! 为什么我的程序会出现这个console窗口,我该怎么搞掉它 奇怪问题,为什么建立不了exe服务的对象?
if( pMsg->hwnd == m_edit.m_hWnd &&
pMsg->message == WM_KEYDOWN &&
pMsg->wParam == VK_RETURN )
{
...
}
但是bollom的办法是一个绕弯子的办法。
if( pMsg->hwnd == m_edit.m_hWnd &&
pMsg->message == WM_KEYDOWN &&
pMsg->wParam == VK_RETURN )
{
// 在這里發送Message, 然后在 Owner 中截获 這個消息 NMHDR nm;
nm.hwndFrom = m_hWnd;
nm.idFrom = GetDlgCtrlID();
nm.code = NM_RETURN;
GetOwner()->SendMessage(WM_NOTIFY, nm.idFrom, (LPARAM)&nm);}
在 Owner 的頭文件中定義:
afx_msg void OnEditReturn(NMHDR*, LRESULT* );
然后在 Owner 的.cpp 中 定義 消息 映射 ON_NOTIFY(NM_RETURN, 這是控件ID, OnEditReturn)就可以了