用SDK开发的对话框中要用到Edit,但是无法在Edit中输入Table。而是切换了焦点,怎样才能输入Table字符呢?

解决方案 »

  1.   

    一种方法是在消息循环中拦截WM_KEYUP WM_KEYDOWN发现是Tab并且是窗口Handle是Edit时就给拦住,并把Edit里的内容后面加若干个空格(2/4/8),就象UltraEdit里面一样,这个空格数可以设置。
      

  2.   

    这种方法我想过,另一种方法呢?为什么有ES_WANTRETURN,就没有ES_WANTTABLE呢?难道系统只管回车键忘了TABLE健?
      

  3.   

    这么多天还没有人完整地回答这个问题啊?
    还有,好像Edit的父窗口(Dialog)的消息处理函数里面接收不到WM_KEYDOWN/WM_KEYUP/WM_CHAR这三个消息
      

  4.   

    Dialog可以接收啊,是不是edit拦截了
      

  5.   

    我的代码接收不了,而且是任何的WM_KEYDOWN/WM_KEYUP/WM_CHAR消息接收不了
      

  6.   

    在oncmdmsg中处理啊拦截id,针对处理
      

  7.   

    我用的是模式对话框。
    DialogBox里面指定一个消息函数入口DlgMsgProc。
    在DlgMsgProc里面处理的消息,任何的WM_KEYDOWN/WM_KEYUP/WM_CHAR消息都接收不了