Function Key 13〜24
Shift + FKey1〜12 を FKey13〜24に変換


BOOL CWndEx::PreTranslateMessage(MSG* pMsg) 
{
  switch (pMsg->message)
  {
  case WM_SYSKEYDOWN: // VK_F10/VK_F22用
  case WM_KEYDOWN:
    {
      SHORT nID = ::GetAsyncKeyState(VK_SHIFT);
      WPARAM nKey = pMsg->wParam;

      // Shift + VK_1〜VK12 → VK_F13〜VK_F24 に変換
      if ((nID)&&(VK_F1 <= nKey)&&(nKey <= VK_F12))
      {
        nKey = nKey + 12;
      }
TRACE("VK_F%d, %d, %d,%d\r\n", pMsg->wParam - VK_F1 +1, nID, pMsg->wParam, pMsg->lParam );

      switch(nKey)
      {
      case VK_F4:
        return TRUE;
      case VK_F10:
        return TRUE;
      case VK_F11:
        break;
      case VK_F16: // Shift + VK_F4 / VK_F16
        break;
      case VK_F22:
        return TRUE;
      }
    }
    break;
  }

  return CWnd::PreTranslateMessage(pMsg);
}

VC覚書きページ...