メーリングリストで話題になったMessageDlgのアイコンの問題ですが、
Windows Vistaから標準アイコンのガイドラインが変更されていたことが原因でした。
「DEKOのざつだん。」に詳細なまとめが掲載されています。
- http://ht-deko.minim.ne.jp/ft1012.html#101224_05
- http://ht-deko.minim.ne.jp/ft1012.html#101225
- http://ht-deko.minim.ne.jp/ft1012.html#101226
本当にややこしいですので、画面キャプチャ付きで比較してみました。
(C++Builder XEを使用しています。)
MessageDlgの比較
UseLatestCommonDialogs=true の場合
UseLatestCommonDialogs = true;
MessageDlg("メッセージ", mtConfirmation, TMsgDlgButtons() << mbOK, 0);
Windows XPの場合
Windows Vistaの場合
※情報アイコンで表示されています。
UseLatestCommonDialogs=false の場合
UseLatestCommonDialogs = false;
MessageDlg("メッセージ", mtConfirmation, TMsgDlgButtons() << mbOK, 0);
Windows XPの場合
Windows Vistaの場合
TaskMessageDlgの比較
UseLatestCommonDialogs=true の場合
UseLatestCommonDialogs = true;
TaskMessageDlg(L"タイトル", L"メッセージ", mtConfirmation, TMsgDlgButtons() << mbOK, 0);
Windows XPの場合
Windows Vistaの場合
※情報アイコンで表示されています。
UseLatestCommonDialogs=false の場合
UseLatestCommonDialogs = false;
TaskMessageDlg(L"タイトル", L"メッセージ", mtConfirmation, TMsgDlgButtons() << mbOK, 0);
Windows XPの場合
Windows Vistaの場合
※情報アイコンで表示されています。
TaskDialogの比較
MainIconに「tdiInformation」を指定した場合
TaskDialog1->Execute();
Windows XPの場合
Windows Vistaの場合
MainIconに「32514」を指定した場合
TaskDialog2->Execute();
Windows XPの場合
Windows Vistaの場合