c++ builder XE4, 10.2 Tokyo > dialog > 初期ボタンを設定する方法 > MessageBox()を使う


動作確認
C++ Builder XE4
Rad Studio 10.2 Tokyo Update 2 (追記: 2017/12/27)

OK, CANCELなどの確認ダイアログを表示するとき、誤操作防止の観点からCANCELボタンにフォーカスが移っていて欲しい場合がある。

C++ Builderで知っている方法としては以下の方法がある。

Unit1.cpp
void __fastcall TForm2::Button1Click(TObject *Sender)
{
    String cnfmsg = L"Are you sure?";

    if (IDOK == MessageBox(Handle, cnfmsg.c_str(), L"Confirmation",
          MB_ICONQUESTION | MB_OKCANCEL | MB_DEFBUTTON2) ) {
        ShowMessage(L"DONE");
    }
}

MB_DEFBUTTON2 がCancelボタンに対応する。

他のメッセージ表示機能では調べた限りでデフォルトフォーカスの設定変更方法は見つかっていない。
OK,Cancelボタンの場合、OKがデフォルトになっていて、誤操作を誘発する。

検索キーワード

  • MessageDlg()