昨天在csdn上问了个关于“回车等于退出”的问题,经高手指点,我重载了PreTranslateMessage函数,但效果却是:屏蔽了回车这个事件,怎么按都没用,我的目的当然不是这样!!我要对回车事件做出正确的响应,比如:转移焦点、执行某个函数等等,请问:怎么才能办到?要在OnKeyDown中写吗?写什么?又要屏蔽回车(因为一回车就退出),又要对它响应,这不是矛盾吗?

解决方案 »

  1.   

    是对话框里的消息吗?给这个对话框打上wantreturn钩然后用 OnKeyDown 来搞
      

  2.   

    对话框中的OK按钮的属性当中(选中控件,Alt+Enter,选择Style),可以设置他不是default button,回车就可以不必去关闭窗口了。
      

  3.   

    在PreTranslateMessage中做不就行了?
      

  4.   

    重载OnOK函数,如果里面有类似于CDialog::OnOK()的代码就去掉,哪有楼上几位说的这么复杂?
      

  5.   

    老狐狸说的有点狡猾啊,如果对的话,把CDialog::OnOK()的代码就去掉后,加上你的消息处理函数就可以响应回车事件
      

  6.   

    怎么在VB中TEXT就有OnKeyDown事件,而在VC中就没有,这样感觉很不方便,是不是WINDOWS标准消息中EDIT就没有OnKeyDown事件,在VB中为了开发的方便微软给做了一个?
    还有,我的对话框上的按钮都被我删掉了,我上哪去重载OnOK?我的目的是在EDIT中响应回车!!!一回车就改变FOCUS!我太菜了,给个具体点的说明吧,是在PreTranslateMessage中的if VK_RETURN 后面写具体代码吗?