请教高手:对话框中被子类化的编辑控件为什么不能接受回车键?

fling_angell 2001-07-01 11:00:26
我在一个对话框中放了一个编辑控件,从CEdit类派生了一个新类CMyEdit,然后再对话框类中嵌入一个CMyEdit地成员变量m_myedit,在对话框类的OnInitDialog()函数中用
m_myedit.SubclassDlgItem(IDC_myedit,this)将编辑控件子类化.但问题是当编辑控件获得输入焦点时,我根本没机会获得对回车键(还有tab健)的消息处理权,不管OnChar,OnsysChar,还是OnKeyDown都不接受这两个键触发的消息.
情高手指教,不胜感激!
...全文
107 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fling_angell 2001-07-02
  • 打赏
  • 举报
回复
非常赞同FMD(Niko)的解答
谢谢
yrj 2001-07-01
  • 打赏
  • 举报
回复
可以重载ProMessage...()
FMD 2001-07-01
  • 打赏
  • 举报
回复
你subclass的控制是个什么窗口(CStatic?)
CEdit的ES_WANTRETURN风格设置了没有?

很多情况下,自己的控件需要响应WM_GETDLGCODE ,并告诉对话框父窗口,自己对哪些消息感兴趣(请求父窗口不要横刀夺爱)

DLGC_WANTALLKEYS Control processes all keyboard input.
DLGC_WANTARROWS Control processes arrow keys.
DLGC_WANTCHARS Control processes WM_CHAR messages.
DLGC_WANTMESSAGE Control processes the message in the MSG
structure that lParam points to.
DLGC_WANTTAB Control processes the TAB key.
等等
这些在自己派生的CWnd类作为对话框子控件时需要用到.(CEdit我不清楚,照理,他应该已经要求DLGC_WANTALLKEYS了)

参考MSDN:

HOWTO: Use the WM_GETDLGCODE Message
ID: Q83302
xxxbird 2001-07-01
  • 打赏
  • 举报
回复
你需要将Edit Control的WM_KEYDOWN消息放到对话框的消息映射中去。

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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