본문 바로가기
IT-개발,DB

[개발/VC] ActiveX에서 키, 탭키등을 먹게 하기

by SB리치퍼슨 2011. 9. 27.
[개발/VC] 엑티브엑스에서 키, 탭키등을 먹게 하기


////////////////////////////////////////////////////////////////////////
// ActiveX Control내 키 이벤트 문제
// 1. OnCreate에서 
//        OnActivateInPlace (TRUE, NULL); // == UI-Activate the control        
// 2. PreTranslateMessage 추가
// 3.  OnMouseActivate 추가
BOOL CActiveApprovalCtrl::PreTranslateMessage(MSG* pMsg) 
{
        // TODO: Add your specialized code here and/or call the base class
        switch (pMsg->message)
        {
                case WM_KEYDOWN:
                case WM_KEYUP:
                switch (pMsg->wParam)
                {
                        case VK_UP:
                        case VK_DOWN:
                        case VK_LEFT:
                        case VK_RIGHT:
                        case VK_HOME:
                        case VK_END:
                        case VK_TAB:                        // 탭키도 쓸수 있다.

                        ::SendMessage( pMsg->hwnd , pMsg->message, pMsg->wParam, pMsg->lParam);
                        //SendMessage (pMsg->message, pMsg->wParam, pMsg->lParam);
                        // Windowless controls won't be able to call SendMessage.
                        // Instead, just respond to the message here.
                        return TRUE;
                }
                break;
        }
        return COleControl::PreTranslateMessage(pMsg);
}

int CActiveApprovalCtrl::OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message) 
{
        // TODO: Add your message handler code here and/or call default
        if (!m_bUIActive)
                OnActivateInPlace (TRUE, NULL); // == UI-Activate the control
        return COleControl::OnMouseActivate(pDesktopWnd, nHitTest, message);
}

int CActiveApprovalCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
        if (COleControl::OnCreate(lpCreateStruct) == -1)
                return -1;
        OnActivateInPlace (TRUE, NULL); // == UI-Activate the control        

             :
        return 0;
}
//////////////////////////////////////////////////////////////////////////

반응형

댓글