いつもお世話になっておりますKonです。よろしくお願いします。
PCはWinXP、Visual C++ 2005 Express Edition を使用しています。
Windowsフォームアプリケーション でプロジェクトを作成しています。
bmpを表示するプログラムを作っています。
Panel の上に pictureBox を載せているのですが、
小さい画像を表示した時に、Panel の中央に表示させたいのですが、
どのように設定したら良いのでしょうか?
お分かりになる方はいらっしゃいませんか?
PictureBoxのプロパティにそれらしき物は無いですか?
MSDNでPictureBoxのプロパティについて調べてみましょう。
”真ん中に置く”みたいなプロパティを探していたんですが、
結局見つけることが出来ず、
今は、メインフォームの Resize のイベントから
private: System::Void MyResize()
{
int w, h;
if( (pictureBox->Width > panel->Width) ||
(pictureBox->Height > panel->Height))
{
this->pictureBox->Location = System::Drawing::Point(0, 0);
} else {
w = (panel->Width - pictureBox->Width)/2;
h = (panel->Height - pictureBox->Height)/2;
this->pictureBox->Location = System::Drawing::Point(w, h);
}
}
と呼んでいます。
これでは、ファイルを読み込んだ時には、
Locationの位置が変らないので困ったなと思っていたんですが、
ファイルをOpenした時に、MyResize()を呼べば良いじゃん
ということに今気が付きました。
この方法が、トリッキーな場合は、
ご指摘頂ければ幸いです。
一応、解決。
PictureBox
--- SizeModeプロパティで CenterImage を指定
--- Dockプロパティで Fill を指定
ではダメでしたか?
Blue さんありがとうございます。
確かに、中央に表示されました。
この方法ですと、大きな画像を表示した時に、
スクロールバーが表示されないのですが、
この状況を回避することは出来ないのでしょうか?