具体问题是这样的:在界面上需要动态创建几个小的对话框用来显示一些参数,但是当创建完之后,我再进行一些别的键盘操作的时候,界面不响应这个键盘消息了,因为此时的焦点在小对话框上呢,那么我应该怎么解决这个问题啊,可以在动态创建对话框的时候,不让其获得焦点吗?

解决方案 »

  1.   

    用Create创建非模态对话框时,后用SetWindowPos显示。例如CMyDialog dlg;
    dlg.Create(IDD_MYDIALOG,this);
    dlg.SetWindowPos(NULL, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE|SWP_SHOWWINDOW);
      

  2.   

    动态创建模式对话框的时候,焦点是被剥夺的,你可以创建完之后,再
    GetDlgItem(IDC_EDIT1)->SetFocus(); //让其重新获得焦点
      

  3.   

    怎样才能实现在创建一个非模态对话框的同时让其不获得焦点啊~~
    对于非模式对话框,通过Create创建之后,默认就是不获得焦点的~~~
      

  4.   

    WM_INITDIALOG : ... return FALSE;