怎样控制基于对话框程序中的编辑控件的输入
我用应用向导建立了一个基于对话框的程序框架,我在上面放了一个编辑控件,我想让该控件在输入enter键之后输出一条信息,但我怎么也找不到对编辑控件的控制信息,比如说keydown,keyup,onchar之类的,我怎样做才能够控制他门呢?!
另外,我发现在对话框中加入任何控件都不能够控制他们焦点、输入等等的问题怎样才能够作到控制他们呢?
小弟才学vc不久,希望各位帮忙!
问题点数:50、回复次数:6Top
1 楼idAnts(此广告位招租)回复于 2002-04-07 17:58:15 得分 10
可以在对话框的PreTranslateMessage函数中处理消息,当WM_KEYDOWN消息且pMsg->wParam为13时(enter),给编辑控件SendMessageTop
2 楼wangjianddy(~~~~>_<~~~~)回复于 2002-04-07 18:01:54 得分 5
先给控件加个对象吧,或许会容易点!
很多你像的操作都会很容易的Top
3 楼yhpvc(yhpvc)回复于 2002-04-07 18:34:36 得分 0
能否讲的具体一些呢,我都不知道你门说的是什么哦Top
4 楼shaohua(流氓大亨文盲高官)回复于 2002-04-07 18:35:57 得分 25
同意: idAnts(你才无聊呢) 。
BOOL CPressDlg::PreTranslateMessage(MSG* pMsg)
{
if ((pMsg->message == WM_KEYDOWN) && (pMsg->wParam == 13))
{
MessageBox("asdf","sdafasdf");
}
}
你还可以再其中加上判断当前获得焦点的是否是该编辑框的代码:
//先获得该编辑框
CEdit *pEdit = (CEdit*)GetDlgItem(ID_XXXX);
//获得当前获得焦点的控件
Wnd *pWnd = GetFocus();
//判断是否编辑框为获得焦点的控件
if (pWnd == pBtn)
{
//.........
}
搞定!Top
5 楼dhc_lmy(一只乌鸦)回复于 2002-04-07 18:57:28 得分 10
一个好办法:
1.重载CEdit类
2.将你的编辑框子类化到你重载的类(先引入新建类头文件和一个对象)
myedit.SubclassDlgItem(IDC_EDIT1,this);
3.DO WANT YOU WANT(事件都在新类中了)Top
6 楼yhpvc(yhpvc)回复于 2002-04-07 19:19:06 得分 0
thanksTop




