2016年4月12日火曜日

[C++][MFC]「今後このメッセージを表示しない」付きメッセージボックスはCTaskDialogですぐできる

タイトルの通り、「今後このメッセージを表示しない」付きメッセージボックスの作り方を調べたのでメモ。

Visual Studio 2010以降ではMFCにCTaskDialogという多機能メッセージボックスクラスが追加されています。

CTaskDialog クラス

CString message(_T("何かメッセージ"));
CString title (_T( "警告"));
CString emptyString;
CTaskDialog messageBox(message, emptyString, title , TDCBF_OK_BUTTON);
messageBox.SetMainIcon(TD_WARNING_ICON);
messageBox.SetVerificationCheckboxText (_T( "今後このメッセージを表示しない"));
messageBox.SetVerificationCheckbox (FALSE);
messageBox.DoModal();
if (dlg.GetVerificationCheckboxState()) {
  // フラグをレジストリかどこかに保存
}

こんな感じで表示できます。
あとは、ダイアログ表示前に保存しておいたフラグをチェックして、フラグによってCTaskDialogの表示を制御すればいいだけ。

これは便利!