VCネタ
ダイアログで開発していると、表面に出てこないことがある。
それはESCキーとEnterキー。
何も対策しないと、フォーカスがダイアログに当たっている状態で
ESCとかEnterキーを押すと、ダイアログが閉じてしまうのだ。
これを回避するにはPreTranslateMessageを使う。
BOOL COptionDialog::PreTranslateMessage(MSG* pMsg)
{
// TODO: この位置に固有の処理を追加するか、または基本クラスを呼び出してください
if(pMsg->message == WM_KEYDOWN){
if(pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE){
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
これでEnter押してもESC押してもDialogが閉じる事は無い。
意外と対策してない場合があるかもしれないので注意。