環境は以下の通りです。
Windows XpSP2 & Windows VistaSP1
CB2009
CB2009だけに限った話ではなく、WindowsのAPIに関する質問と言うこと
になるかも知れませんが、お願いいたします。
TApplicatonクラスのMessageBox関数で表示するダイアログボックスの
表示文字が小さくて、他のフォームの文字はそのまま、このダイアログボ
ックスの表示文字(フォント)を大きくしたいのですが、どなたかご存じ
ありませんか?
表示される、マークも堂用意大きくしたいのです。
ダイアログボックスを自分で新規フォームで用意して、OKボタンなどを
配置して作成する方法は採りたくなく、あくまで、TApplicatonクラスの
MessageBox関数で表示するダイアログボックスで行いたいのです。
よろしくお願いいたします。
~~~~~~~~~~~~~~~~~~~~~~
〒350-2201
埼玉県鶴ヶ島市
西口幸男
E-mail: y_nish...@xa.ejnet.ne.jp
~~~~~~~~~~~~~~~~~~~~~~
誤字がありましたので、再度の投稿です。
環境は以下の通りです。
動作OS:Windows XpSP2 & Windows VistaSP1
開発言語・ツール:CB2009
CB2009だけに限った話ではなく、WindowsのAPIに関する質問と言うこと
になるかも知れませんが、お願いいたします。
TApplicatonクラスのMessageBox関数で表示するダイアログボックスの
表示文字が小さくて、他のフォームの文字はそのまま、このダイアログボ
ックスの表示文字(フォント)を大きくしたいのですが、どなたかご存じ
ありませんか?
表示される、マークも同様に大きくしたいのです。
ウィンドウタイトルも出来れば大きくしたい。
ダイアログボックスを自分で新規フォームで用意して、OKボタンなどを
配置して作成する方法は採りたくなく、あくまで、TApplicatonクラスの
MessageBox関数で表示するダイアログボックスで行いたいのです。
どなたか、ご存じでしたら、よろしくお願いいたします。
自己レスです。 以前にも同様の質問をしていました。
で、質問のようなことをやっていると思われるプログラムのソースを手
に入れることが出来ましたので、調べたところ、
TApplicatonクラスのMessageBox関数で表示しているのではなく、
表示フォームを真似た新しいフォームを作成していました。
「!」や「?」、「×」などのアイコンイメージも自分で表示している
ことが判明しました。
ただ、「!」マークなどのWindowsが所有しているというか、アイコン
のイメージの取得方法が今ひとつわかりません。
で、質問内容を変えて、
【質問1】
どのようなアイコンがあるのかを知る方法は?
【質問2】
そのアイコンイメージの取得方法は?
以上、よろしくお願いいたします。
追伸:動作環境および開発環境は
動作OS:Windows XP(SP2以降) & Vista(SP1以降)
開発ツール:CB5, CB6, CB2009
です。
>【質問1】どのようなアイコンがあるのかを知る方法は?
MSのMessageBox関数のヘルプを読むか、ググルなど
>【質問2】そのアイコンイメージの取得方法は?
LoadIcon()かLoadImage()関数(WIN32API)で取得できる様です
BCB5でお試しコードを書きました
Imageコンポを1つフォームに配置してください
void __fastcall TForm1::Button5Click(TObject *Sender)
{
UINT mbi[4] = {MB_ICONERROR, MB_ICONINFORMATION,
MB_ICONQUESTION, MB_ICONWARNING};
char* sco[4] = {"MB_ICONERROR", "MB_ICONINFORMATION",
"MB_ICONQUESTION", "MB_ICONWARNING"};
char* idi[4] = {IDI_ERROR, IDI_INFORMATION,
IDI_QUESTION, IDI_WARNING};
HICON hIcon;
int i;
for (i=0; i<4; i++) {
hIcon = ::LoadIcon(NULL, idi[i]); // Win32API
if (hIcon != NULL) {
// ひとづつ確認する用
Image1->Picture->Icon->Handle = hIcon;
Application->MessageBox(sco[i],"確認",MB_OK | mbi[i]);
}
}
// 初期サイズと50ピクセル角でアイコンを描いてみる
Graphics::TBitmap* map;
Graphics::TIcon* ico;
TRect Rect(0,0, 0,0);
TRect Iti(0,150, 50,200);
TPoint poi(0,100);
map = new Graphics::TBitmap;
ico = new Graphics::TIcon;
for (i=0; i<4; i++) {
hIcon = ::LoadIcon(NULL, idi[i]);
if (hIcon != NULL) {
ico->Handle = hIcon;
map->Palette = ico->Palette;
map->PixelFormat = pf32bit;//pf8bit;
map->Height = ico->Height;
map->Width = ico->Width;
map->Canvas->Brush->Color = clBtnFace;
Rect.Right = map->Width;
Rect.Bottom= map->Height;
map->Canvas->FillRect(Rect);
map->Canvas->Draw(0,0, ico);
Canvas->Draw(poi.x, poi.y, map);
poi.x += 50;
Canvas->StretchDraw(Iti, map);
Iti.left += 50;
Iti.Right += 50;
}
}
delete ico;
delete map;
}
なかじまさん、丁寧なソースコードの提示ありがとうございます。
取り込ませていただきますね m(__)m
~~~~~~~~~~~~~~~~~~~~~~
〒350-2201
埼玉県鶴ヶ島市富士見1丁目1-8
アーバンヒルズ305
西口幸男
E-mail: y_nish...@xa.ejnet.ne.jp
~~~~~~~~~~~~~~~~~~~~~~