社区
界面
帖子详情
为什么基于对话框的应用程序的对话框不能响应WM_CHAR消息?
ygzdev
2003-10-24 08:11:45
我刚接触VC不久,对此不了解!不知道是什么原因,请问怎么才能响应该消息呢?谢谢!!
...全文
95
12
打赏
收藏
为什么基于对话框的应用程序的对话框不能响应WM_CHAR消息?
我刚接触VC不久,对此不了解!不知道是什么原因,请问怎么才能响应该消息呢?谢谢!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
VC中
对话框
不能
响应
WM
_
CHAR
WM
_KEYUP
WM
_KEYDOWN
消息
的解决办法
做了这样一个例子:在...”, 给
对话框
添加了
WM
_
CHAR
消息
响应
函数,结果发现不
响应
,单步的时候发现不进
消息
响应
函数的代码,解决方法如下给
对话框
添加vritual 函数 BOOL CMy43Dlg::PreTranslateMessage(MSG* pMsg)
MFC
对话框
程序
不能
响应
WM
_
CHAR
消息
的解决办法
重载PreTranslateMessage虚函数,代码如下: BOOL CaDlg::PreTranslateMessage(MSG* pMsg) ... if (
WM
_KEYDOWN == pMsg->message ||
WM
_
CHAR
== pMsg->message) { pMsg->hwnd = m_hWnd; return
VC中
对话框
程序不
响应
WM
_
CHAR
WM
_KEYUP \
WM
_KEYDOWN
消息
这是因为你的
对话框
有控件,这样默认焦点就落在某一按纽之上,
消息
由该控件
响应
.解决方法是重载PretranslateMessage() BOOL CMyTextDlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized ...
MFC为何不
响应
WM
_
CHAR
消息
的解释理解
MFC为何不
响应
WM
_
CHAR
消息
的解释理解
WM
_
CHAR
必须由
WM
_KEYDOWN经过TranslateMessage得到,如果你当前拥有焦点的控件无法进行输入,则收不到
WM
_
CHAR
消息
然
WM
_KEYDOWN
消息
是当一个非系统键被按下时该...
基于MFC
对话框
的键盘
消息
响应
WM
_KEYDOWN
WM
_
CHAR
消息
PreTranslateMessage是
消息
在送给TranslateMessage函数之前被调用的,绝大多数本窗口的
消息
都要通过这里,比较常用,当需要在MFC之前处理某些
消息
时,常常要在这里添加代码. MFC
消息
控制流最具特色的地方是...
界面
15,979
社区成员
115,897
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章