如何知道哪个CEdit控件获得焦点?
有很多个CEdit控件,现在要判断是哪个控件获得了焦点.

解决方案 »

  1.   

    CWnd::GetFocusstatic CWnd* PASCAL GetFocus( );返回值:
    指向拥有当前焦点的窗口的指针,如果没有焦点窗口,则返回NULL。这个指针可能是临时的,不能被保存以供将来使用。说明:这个函数获得指向当前拥有输入焦点的CWnd的指针
      

  2.   

    在主窗口中调用
    CWnd *pWnd = GetFocus();
    if( pWnd )
    {
        UINT nID = pWnd->GetDlgCtrlID();
        switch( nID )
        {
            case IDC_EDIT1:
            blablalba...
        }
    }
      

  3.   

    TO FireBirdCN :
    你的MSDN是中文版的吗?有中文版的吗?
      

  4.   

    to m_nNightmire 
    我在按扭控件的消息处理函数中调用了
    CWnd *pWnd = GetFocus(); 
    if( pWnd ) 

        UINT nID = pWnd->GetDlgCtrlID(); 
        switch( nID ) 
        { 
            case IDC_EDIT1: 
            blablalba... 
        } 
    }
    返回的ID值都是一个值。
      

  5.   

    肯定的,返回的是你的按钮ID,这时候焦点在按钮上你的问题只能添加SetFocus然后在里面记录最后的焦点所到的Edit的ID然后处理你的问题就可以了。
      

  6.   

    我的MSDN 不是中文的
    我给你发的是从 MFC详解 中复制的 网上很多在主窗口类中 添加 鼠标消息
    void CXXXDlg::OnLButtonDown(UINT nFlags, CPoint point) 
    再处理
    CWnd *pWnd = GetFocus(); 
    if( pWnd ) 

        UINT nID = pWnd->GetDlgCtrlID(); 
        switch( nID ) 
        { 
            case IDC_EDIT1: 
            blablalba... 
        } 

      

  7.   

    按下按钮时,或者按TAB键,都要获得edit控件的焦点位置。应该用哪个消息啊?
      

  8.   

    BOOL   CFocusDlg::PreTranslateMessage(MSG*   pMsg)     
    {    
      if(pMsg->message==VK_TAB)  
      {
        int i= VK_TAB;
      }
    return CDialog::PreTranslateMessage(pMsg);   
    }  重载了下PreTranslateMessage()。我按tab键,程序怎么进步到if语句里面阿。 
      

  9.   

    switch( pMsg->message )
    {
        case WM_KEYDOWN:
        case WM_SYSKEYDOWN:
        if( pMsg->wParam == VK_TAB )
    }
      

  10.   

    啊,谢谢谢谢!
    在里面加鼠标按键/ENTER 处理,应该使用什么参数呢?
    switch( pMsg->message ) 

        case WM_KEYDOWN: 
        case WM_SYSKEYDOWN: 
        if( pMsg->wParam == VK_TAB ) 
    }
      

  11.   

    case WM_LBUTTONDOWN:  //左键按下
    case WM_LBUTTONUP:    //左键抬起
    case WM_LBUTTONDBCLK: //左键双击
    case WM_RBUTTONDOWN:  //右键按下
    case WM_RBUTTONUP:    //右键抬起
    case WM_RBUTTONDBCLK: //右键双击
    还有什么鼠标中键的几个消息,我记不清了...
    按键:
    ENTER - VK_RETURN
    ESC - VK_ESCAPE
    空格 - VK_SPACE
    上下左右 - VK_UP,VK_DOWN,VK_LEFT,VK_RIGHT...