谁能告诉我?CEdit和CStatic都是从CWnd继承,为什么CStatic没有焦点?我要做一个控件,想让它不拥有焦点,不从CStatic继承?怎么办?请讲详细点!我在上面要实现类似按钮的功能,但不让它有焦点!

解决方案 »

  1.   

    处理这个控件的WM_SETFOCUS消息,只要它一得到焦点,就立刻把焦点移到下一个窗口。比如如果这个控件是放到dialog上的,可以这样:
    void Cxxx::OnSetFocus(CWnd* pOldWnd)
    {
        NextDlgControl();
    }
      

  2.   

    取消该控件的Tab Stop属性试试。
      

  3.   

    TabStop是没用的,我试过了!有谁明白CEDIT和CSTATIC之间焦点方面的?
      

  4.   

    有谁明白CEDIT和CSTATIC之间焦点方面的?
      

  5.   

    有一個 NOactive 之類的擴展屬性
      

  6.   

    那个控件总应该收到wm_setfocus消息吧。这时把焦点移开就是了。
      

  7.   

    建议你读MFC源程序有关CStatic实现部分.
    我想为什么没有焦点应该可以从源程序中发现.
      

  8.   

    我是为做控件才用VC的,应怎么把CStatic?MFC中的实现部分找出来呢?
      

  9.   

    CStatic static;
    在这一句上设一个断点,然后step into就会跳到CStatic的实现文件去。
      

  10.   

    我在消息处理中加入
    case WM_SETFOCUS:
    {
        
    ::PostMessage(hwnd,WM_KILLFOCUS,0,0);
    CWnd *wnd=::AfxGetMainWnd();
    HWND hwndwnd=wnd->m_hWnd;
    lihao=hwndwnd;
    ::SetFocus(hwndwnd);
        
    }
    有谁知道应怎么去把和控件同一窗体的其它控件绑在一块?
      

  11.   

    我只实现了每按一次TAB才能输一个字符!
      

  12.   

    就是在这个控件中点击一下,我发送一个键盘消息,怎么让另一个控件得到,只用keybd_event
      

  13.   

    >>就是在这个控件中点击一下,我发送一个键盘消息,怎么让另一个控件得到,只用keybd_event我也碰到过你这样的问题,转变SetFocus后,必须在标题栏上点一下,那个CEdit才能得到焦点,然后想要在这个焦点上keydb_event吧!和我当时一摸一样!
    就是要必须在标题栏上点一下,那个CEdit才能得到焦点!
    不知道为什么,可能还存在某个我们不知道的刷新函数。