程序中有一个输入编辑框,为了方便,不需要用鼠标点击编辑框,而是直接打字就可以将打的字显示在编辑框中。如何实现?

解决方案 »

  1.   

    这个方便付的代价有点大吧,你可以按照下列思路来做:对WM_CHAR,WM_SYSCHAR消息的处理程序中调用m_nEdit->SetFocus();
      

  2.   

    也可以用WM_KEYDOWN处理,前提你的程序获得了焦点,不然可能就得用勾子了
      

  3.   

    程序启动好了,并且在桌面最上面,焦点应该就在程序中吧?
    可是我在WM_KEYDOWN处理函数中m_nEdit->SetFocus(); 没用阿
      

  4.   

    问题是你这个WM_KEYDOWN是在哪里接收处理的。在最上层窗口获得焦点时是直接接收键盘消息的。
      

  5.   

    楼上说得对,要看看当前的焦点在哪。最保险是用全局钩子,判断一下程序窗口是否是活动窗口,如果是则将焦点设到edit控件上
      

  6.   

    对WM_CHAR,WM_SYSCHAR消息的处理程序中调用m_nEdit->SetFocus();
      

  7.   

    在所有可能的父窗口中重载
    PreTranslateMessage(MSG* pMsg)实现你想要的:if(pMsg->message  == WM_KEYDOWN)流程