为什么基于对话框的应用程序的对话框不能响应WM_CHAR消息?

ygzdev 2003-10-24 08:11:45
我刚接触VC不久,对此不了解!不知道是什么原因,请问怎么才能响应该消息呢?谢谢!!
...全文
95 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
tserpent 2003-10-28
  • 打赏
  • 举报
回复
你可以这样处理回车键:
BOOL CXXXDialog::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN)
{
switch(pMsg->wParam)
{
case VK_RETURN:
DoYourFunction()....;
return TRUE;

case VK_ESCAPE:
return TRUE;
}
}


return CDialog::PreTranslateMessage(pMsg);
}
ygzdev 2003-10-27
  • 打赏
  • 举报
回复
编辑框加上want return属性我试过是不行的,但现在这个want return又是干什么用的呢,我就不解了!
carbon107 2003-10-27
  • 打赏
  • 举报
回复
编辑框的属性 加上want Return
ygzdev 2003-10-27
  • 打赏
  • 举报
回复
THANK YOU VERY VERY MUCH!
ygzdev 2003-10-26
  • 打赏
  • 举报
回复
编辑框架上want return属性是不行的,我早试过了。MilitaryMiatures(++)真是厉害,我派生出的类只响应WM_CHAR消息,结果还是不可以。这下试试WM_GETDLGC!谢谢了!
MilitaryMiniatures 2003-10-26
  • 打赏
  • 举报
回复
//sorry,shoule be WM_GETDLGCODE
LRESULT CYoutEdit::OnGetDlgCode(WPARAM wParam, LPARAM lParam)
{
return CEdit::OnGetDlgCode(wParam, lParam) | DLGC_WANTALLKEYS;
}

这么处理的结果是,你要自己处理Tab键,比较讨厌,可以看看DLGC_WANTCHARS这个行不行,估计不行。
MilitaryMiniatures 2003-10-24
  • 打赏
  • 举报
回复
回车一般被解释为对话框中的默认按钮。
编辑框架上want return属性,好像不一定行。
当需要这种情况时,我的做法一般是从CEdit派生一个类,其中响应WM_GETDLGC,并且返回一个数据表明需要所有的键盘输入,并且响应WM_CHAR消息,其中可以判断回车。
当然,对话框中的编辑框需要进行子类化。
huanyun 2003-10-24
  • 打赏
  • 举报
回复
编辑框的属性 加上want Return
ygzdev 2003-10-24
  • 打赏
  • 举报
回复
我的本意就是要在编辑框中回车后进行处理,但发现编辑框对其他字符都可以处理,但就是对回车不能处理。我试着重写OnOK函数,可惜发现有时的回车并不会响应他
MilitaryMiniatures 2003-10-24
  • 打赏
  • 举报
回复
一般说来,对话框是没有输入焦点的,(focus),输入焦点在其中的控件上,所以说,你的对话框响应不到消息WM_CHAR
huanyun 2003-10-24
  • 打赏
  • 举报
回复
如果你的界面中有一个有焦点的支持onChar消息 那么其他的窗口就得不到了
huanyun 2003-10-24
  • 打赏
  • 举报
回复
CEdit支持onChar

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧