在文本框中输入内容时,当按“Enter”时去执行一项操作,这要真么做?不退出对话框。
解决方案 »
- pc_pc_api.exe 中的 0x00413197 处未处理的异常: 0xC0000005: 读取位置 0x00000478 时发生访问冲突 。
- DataGrid控件如何实现翻页的功能啊
- 一个关于游戏进程智能检测的问题
- 哪位高手知道 XML文件通过XSL转换为EXCLE格式怎么做啊 (急盼)?
- 关于socket的服务端阻塞问题?求求大哥们了啊
- 用BCGControlBar向导生成的MDI程序中,在主框架窗口的PreCreateWindow函数中设置cs.cx和cs.cy为何失效了?
- 类似DELPHI的界面
- 各位大虾、大哥、大姐,帮帮忙,很急的。(100分呀)
- 请教keybd_event() ???
- 高薪求助图象处理老师
- 菜单自绘问题
- ToolBar的tooltip显示
1、用一个不显示的按扭,把它设置成缺省方式即:敲回车便是敲它;
2、重载编辑框的OnChar函数,在里面响应回车消息;
3、用键盘钩子,捕获回车消息;
清掉 CDialog::OnOK()在对话框中,如果不用 OK 钮则直接删除它
则你在 EDIT 中安下回车时会直接调用 default button
我有三个文本框需要这样做,所以我想重载OnChar函数可能会好一点。
但是,好像文本框对应的控件变量并不能直接重载OnChar函数,需要先派生出
一个CEDIT类,才能重载OnChar函数。当我这样做了之后,却不知怎样调用对话框
的函数或把消息派发给对话框。
void CEDIT_OPER::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
if (nChar==VK_ENTER)
......;
CEdit::OnKeyDown(nChar, nRepCnt, nFlags);}
而且,编译时还报错。
error C2065: 'VK_ENTER' : undeclared identifier
然后在对话框的h文件里,把三个控件变量的CEdit换成CEDIT_OPER。
向编辑框发回车消息
VK_RETURN
{
if (pMsg->message == WM_KEYDOWN)
{
//哥们儿, 注意: 这样不会被Esc , 或 Enter掉..
if ((pMsg->wParam == VK_RETURN) ||(pMsg->wParam == VK_ESCAPE))
{
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
if (pMsg->message == WM_KEYDOWN)
{
//假设你文本框ID为IDC_TEXT;
if (pMsg->wParam == VK_RETURN && GetDlgCtrlID(pMsg->hwnd)==IDC_TEXT)
{
...//调用你的处理函数
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
为什么编译时会出现这样的错误:
error C2660: 'GetDlgCtrlID' : function does not take 1 parameters