// 주소 에디트 박스 핸들값으로 오는건 break를 걸어서 Dialog로 메시지를 보내고 아닌것은...
// SendAcceleratorToWeb함수를 이용해서 웹페이지로 보냄
// 힘들었음 이거 알아낸다고 ㅠ
// CEdit *hWndUrlAdress;

BOOL CNBrowserSetupCtrl::PreTranslateMessage(MSG* pMsg)
{
 // TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.

 switch (pMsg->message)
 {
 case WM_KEYDOWN:
  if(GetKeyState(VK_CONTROL))
  {
   // 67 = 'c' , 86 = 'v'
   if(pMsg->wParam == 67)
   { 
    hWndUrlAdress = (CEdit*)NitsViewDlg.GetDlgItem(IDC_ADC);
    MyOutputDebugString("Ctrl Message [%d],[%d],[%d],[%d],[%d]",hWndUrlAdress->m_hWnd,pMsg->hwnd,pMsg->lParam,pMsg->message,pMsg->wParam);
    
    if(!(hWndUrlAdress->m_hWnd == pMsg->hwnd))
     return SendAcceleratorToWeb(pMsg);

    break;
   }
   if(pMsg->wParam == 86)
   {
    hWndUrlAdress = (CEdit*)NitsViewDlg.GetDlgItem(IDC_ADC);
    MyOutputDebugString("Ctrl Message [%d],[%d],[%d],[%d],[%d]",hWndUrlAdress->m_hWnd,pMsg->hwnd,pMsg->lParam,pMsg->message,pMsg->wParam);
    
    if(!(hWndUrlAdress->m_hWnd == pMsg->hwnd))
     return SendAcceleratorToWeb(pMsg);

    break;
   }
  }

 case WM_KEYUP:
  switch (pMsg->wParam)
  {
  case VK_TAB:
  case VK_RETURN:
   MyOutputDebugString("VK_TABffffffffffff");
   hWndUrlAdress = (CEdit*)NitsViewDlg.GetDlgItem(IDC_ADC);
   MyOutputDebugString("Ctrl Message [%d],[%d],[%d],[%d],[%d]",hWndUrlAdress->m_hWnd,pMsg->hwnd,pMsg->lParam,pMsg->message,pMsg->wParam);

   // urlAdress의 핸들값이 아니면 웹으로 키보스 마우스를 보내고
   // 아니면 urlAdress핸들로 키보스 메시지를 보낸다
   if(!(hWndUrlAdress->m_hWnd == pMsg->hwnd))
    return SendAcceleratorToWeb(pMsg);
   break;

  }
  break;
 }
 return COleControl::PreTranslateMessage(pMsg);
}

Posted by 모과이IT
,