none
CWnd 派生类无法获取输入焦点 RRS feed

  • 问题

  • 现象:
    CWnd 派生类CMyWnd类无法获取输入焦点,不能获取按键事件和MouseWheel事件(通过PreTranslateMessage函数)。
    CMyWnd类的实例作为对话框CMyDialog的成员,作为子窗口,在CMyDialog::InitDialog函数中用Create函数创建。
    CMyWnd类的实例如果用对话框编辑器中以Custom Control的变量使用时,无法调用CMyWnd的OnCreate函数,所以只好用Create函数创建。

    在CMyWnd中创建一个Edit控件,当鼠标点中Edit控件,可以获取输入焦点,CMyWnd能获取按键事件和MouseWheel事件。

    问题1:CMyWnd类的实例如果用对话框编辑器中以Custom Control的变量使用时,可以调用CMyWnd的OnCreate函数吗?怎么设置?
    问题2:怎样使CWnd 派生类CMyWnd类能够获取输入焦点,能获取按键事件和MouseWheel事件。

    环境:WinXP+VS2008

    谢谢先!


    knowledge is power
    2009年3月18日 15:31

答案

  • 问题解决了,就是在鼠标左键、右键、中键按下事件处理程序段中加入:
    SetFocus();


    knowledge is power
    • 已标记为答案 jinshan_hu 2009年3月19日 14:18
    2009年3月19日 14:17