« 聞々ハヤえもん 2.18 安定版リリース | メイン | リストビューのヘッダの幅を変更できないよう固定する »

2008/01/13(日)

ホットキーコントロールの入力制限をなくす

ホットキーコントロールには入力制限があり、スペース、エンター、タブキーなどを受け付けてくれない。これを解除しようとすると、ホットキーコントロールをサブクラス化して、WM_KEYDOWNメッセージが飛んできた際にHKM_SETHOTKEYをホットキーコントロールに対して投げてやる必要がある。

virtual void OnKeyDown(UINT vk, int cRepeat, UINT flags)
{
    if(vk == VK_RETURN || vk == VK_TAB || vk == VK_SPACE || vk == VK_DELETE || vk == VK_ESCAPE || vk == VK_BACK)
    {
        SendMessage(m_hWnd, HKM_SETHOTKEY, MAKEWORD(vk, HIBYTE(SendMessage(m_hWnd, HKM_GETHOTKEY, 0, 0))), 0);
        return;
    }
    CHotKeyCtrl::OnKeyDown(vk, cRepeat, flags);
}

まあこんな感じ。

トラックバックURL

このエントリーのトラックバックURL:
http://www.edolfzoku.com/diary/mt-tb.cgi/171

コメントする