用 MFC ActiveX 向导生成的控件,是类似支付宝的加密控件。问题是无法用Tab设置焦点,必须用鼠标点下,才能移动光标到编辑框。请问是怎么回事呀?有谁熟悉吗?在线等。多谢了注:Edit编辑框已经设置了Tab stop 属性

解决方案 »

  1.   

    问题更清楚了,是光标没有显示出来,但是编辑框显然得到Tab键了
      

  2.   

    搞定,重载以下函数:
    BOOL CMyActiveXCtrl::PreTranslateMessage(MSG* pMsg) 
    {
    switch (pMsg->message)
    {
    case WM_KEYDOWN: 

    case WM_KEYUP: 
    switch (pMsg->wParam)
    {
    case VK_BACK:
    case VK_TAB:
    SendMessage (pMsg->message, pMsg->wParam, pMsg->lParam);   //响应退格和Tab键

    }
    break;
    }

    return COleControl::PreTranslateMessage(pMsg);
    }int CMyActiveXCtrl::OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message) 
    {
    if (!m_bUIActive)
    {
    OnActivateInPlace (TRUE, NULL); // == UI-Activate the control 
    }

    return COleControl::OnMouseActivate(pDesktopWnd, nHitTest, message);
    }
    /////////////////////////////////////////////////////////////////////////////
    // CMyActiveXCtrl  message handlersvoid CMyActiveXCtrl::OnSetFocus(CWnd* pOldWnd) 
    {
    COleControl::OnSetFocus(pOldWnd);

    ActiveXDlg.SetFocus();

    }