ダイアログでアクセラレータキーを使う

CDialogでは通常、アクセラレータキーが利用できない。
CDialogでアクセラレータキーを有効にするには、明示的にTranslateAccelerator APIを呼び出す必要がある。
また、アクセラレータのリソースも読み込んでおく必要がある。

■サンプルソース
HACCEL m_acl;       //これはヘッダで宣言しておく

BOOL CxxxDlg::OnInitDialog(){
    CDialog::OnInitDialog();
・・・中略・・・
    //アクセラレータのリソースを読み込む
    m_acl = LoadAccelerators(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_ACCELERATOR1));

    return TRUE;
}

BOOL CxxxDlg::PreTranslateMessage(MSG* pMsg){
    // アクセラレータ
    if(m_acl != NULL){
        if(::TranslateAccelerator(m_hWnd, Acl, pMsg)){
            return TRUE;
        }
    }
    return CDialog::PreTranslateMessage(pMsg);
}