ダイアログなアプリでリターンキーでもボタンを押すことにする
MFCのダイアログベースなアプリを作っているとリターンキーでダイアログが終了→アプリそのものも終了してしまうのがつらい。なわけで大体の場合空っぽの OnOK() を作って無駄うちさせているかと思われますが。
前項ので調べてたら「リターンキーでもボタンを押せるようにする*1」という対応を昔作ってたのが見つかったので公開してみます。
void CDlg::OnOK() { CWnd *pFocus = GetFocus(); if( pFocus != NULL && pFocus->GetParent() == this ) { pFocus->PostMessage(BM_CLICK,0,0); } // CDialog::OnOK(); }
自分(ダイアログ)の子(つまりはボタン)かどうかチェックさせてます。必要ない気もしますけど。
*1:普通はスペースキー