通知
すべてクリア
Topic starter
2008年7月22日 5:14 PM
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を押された場合に処理するような感じで処理を行うものなのでしょうか?
2008年7月22日 8:35 PM
確かめていない推測だよ。できないかもね。
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))