ショートカットキーの処理について

[戻る]
TERU 2008/07/22(火) 17:14:15
PreTranslateMessageで以下の処理をしてキーボードイベントを処理しています。
ですが、これだとKEYDWONで処理していまい、押されている間処理されます。
そこでKEYUPで処理をさせたいのですが、Acceleratorを使っては処理できないのでしょうか?


BOOL CMainFrameWnd::PreTranslateMessage(MSG* pMsg)
{
  if( pMsg->message >= WM_KEYFIRST && pMsg->message <= WM_KEYLAST )
  {
     if(::TranslateAccelerator(m_SubWnd->m_hWnd, m_hAccel, pMsg))
       return TRUE;        
   }
}

登録されたアクセラレーターの関数でショートカットイベントを覚え
KEYUPを押された場合に処理するような感じで処理を行うものなのでしょうか?

wclrp ( 'o') 2008/07/22(火) 20:35:40
確かめていない推測だよ。できないかもね。

if( pMsg->message >= WM_KEYFIRST && pMsg->message <= WM_KEYLAST
 && pMsg->message != WM_KEYDOWN)
{
    MSG MsgA = *pMsg;
    if(MsgA.message == WM_KEYUP) MsgA.message = WM_KEYDOWN;
    if(::TranslateAccelerator(m_SubWnd->m_hWnd, m_hAccel, &MsgA))

古いスレッドには追加発言できません。