Entries

Ads by Google

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

-件のコメント

コメントの投稿

新規
投稿した内容は管理者にだけ閲覧出来ます

-件のトラックバック

トラックバックURL
http://hinagis.blog33.fc2.com/tb.php/16-1ea5d143
この記事に対してトラックバックを送信する(FC2ブログユーザー)

Formのサイズ

VBでFormのサイズを操作するにあたって、利用するプロパティがいくつかあります。

例えば、MaximumSizeプロパティ
これは、フォームの最大サイズを設定するプロパティになります。

例:Form1.MaximumSize=New Size(800,600)

上記のように設定すれば最大ボタンを押してもウィンドウ端をドラッグしても800x600までしか大きくなりません。
また、MinimumSizeプロパティを利用すれば最小サイズを指定することができます。

例:Form1.MinimumSize=New Size(640,480)

ただし、これらのプロパティはフォームのタイトルバーの領域やフォームの周りの枠領域も含んでいますので注意が必要です。

ゲーム等を作成するにあたって、描画領域が640x480必要とするのであれば、MinimumSizeプロパティに640x480と指定するのではなく、タイトルバーや枠領域を加えておかなければなりません。

タイトルバーとかのサイズを調べるのは結構面倒くさいわけですが・・・。
まぁ、おすすめプロパティとしてはClientSizeプロパティでしょうか。
このClientSizeプロパティは描画領域のサイズを指定するプロパティになります。

例:Form1.ClientSize=New Size(640,480)

これにより、タイトルバーのサイズや枠のサイズを考えなくても、描画領域を一発で640x480確保することができます。

ただ、ClientSizeプロパティとMaximumSizeプロパティ、MinimumSizeプロパティを組み合わせるのは結構面倒かと。
ま、ゲームならFormのFormBorderStyleプロパティを固定させて最初から最後まで同じ画面サイズでやれってことですかね。
ちなみに、Formクラスが持つWindowStateプロパティを利用すれば強引にやることはできますが・・・。

例:
Private Sub Form1_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.SizeChanged
 Static Dim flg as Boolean '大画面と普通画面のフラグ
 If Me.WindowState = FormWindowState.Maximized Then '最大化ボタンを押していたら
  If flg = False Then '普通画面640x480だったら
   Me.ClientSize = New Size(800, 600)
  Else '大画面800x600だったら
   Me.ClientSize = New Size(640, 480)
  End If
  flg = Not flg
  Me.WindowState = FormWindowState.Normal 'ウィンドウ状態を通常にする
 End If
End Sub

これであれば一瞬だけ最大化されますが、800x600を上限値とすることができます。
ちなみに、FormBorderStyleプロパティを固定してフォームのサイズ変更をドラッグでできないようにしたおいたほうがベターです。
ま、こんなやり方でいいのかは疑問。

0件のコメント

コメントの投稿

新規
投稿した内容は管理者にだけ閲覧出来ます

0件のトラックバック

トラックバックURL
http://hinagis.blog33.fc2.com/tb.php/16-1ea5d143
この記事に対してトラックバックを送信する(FC2ブログユーザー)

Appendix

最新記事

検索フォーム

月別アーカイブ

売れ筋ランキング

お楽しみ用

アニメグッズ

プロフィール

Author:ひなぎ
VB2005&2008でゲーム作成中

FC2カウンター

Powered By FC2ブログ

今すぐブログを作ろう!

Powered By FC2ブログ

FC2ブログ