怎么在线程中控制界面焦点?直接Setfocus不可行!~SendMessage(WM_SETFOCUS);
SendMessage(WM_ACTIVATE);
SendMessage(WM_SETCURSOR);这些可以把光标转移,但是不能输入!WM_SETCURSOR 好像是有问题的~ 有谁如此操作过?

解决方案 »

  1.   

    WM_SETCURSOR只能发人目标的你窗口接收,一般窗口对象不能输入吧,能输入的都是窗口的子EDIT对象,所以这个消息最好是能让父窗口中具体的可编辑的子窗口对象获得焦点
      

  2.   

    具体是edit控件有 插入符但是没有焦点!
      

  3.   

    直接发消息给UI线程,然后由UI线程来SetFocus()
      

  4.   


    焦点在其他控件上,但是插入符在edit中,所以不能输入!
      

  5.   

    获得edit的句柄,
    调用SetForegroundWindow(hEdit)试试把,子控件也可以调用这个的。
    会令子控件获得焦点。我自己做的一个剪贴板工具就是使用这个方法令指定的窗口(包括子窗口)获得焦点
    因为我以前也想使用SetFocus,但发现有些窗口无效。你试试把,愿顺利!阿弥陀佛!
      

  6.   

    应该是可以的,主界面线程的自定义的消息响应函数中
    GetDlgItem(IDC_EDIT1)->SetFocus();
    或者
    GetDlgItem(IDC_EDIT1)->PostMessage(WM_SETFOCUS, 0, 0);
    GetDlgItem(IDC_EDIT1)->PostMessage(WM_ACTIVATE, MAKEWPARAM(WA_ACTIVE, 0), NULL);