■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#28064-0フォーム表示を最大で表示匿名280642002-04-05(金) 11:35
     #28072-0RE#28064:フォーム表示を最大で表示匿名280722002-04-05(金) 13:34
     #28077-0RE#28064:フォーム表示を最大で表示匿名280772002-04-05(金) 14:27
#28064-0
フォーム表示を最大で表示
VB6.0 SP5を使っています。(OSはWindows2000です)
Form_Load()時にフォームを画面いっぱいに表示したいのです。
考え付く方法として、

  '**********************
  ' Form_Load時の処理
  '**********************
  Private Sub Form_Load()
    Me.Left = 0
    Me.Top = 0
    Me.Width = Screen.Width
    Me.Height = Screen.Height
  End Sub

というのがあると思うのですが、下記の内容が不明のため、
どのように設計すれば良いか分からずにいます。
もちろん上記のコードが正しいかも定かではありません。

(1)Form_Load時に上記の通り最大化処理すると、Form上に貼り付けた
  各コントロール(コマンドボタン、コンボボックスなど)がデザイ
  ン時の表示と異なり、左上のほうに寄せて表示される。
  (つまりデザイン画面でボタンを真中に表示させてても実際には左に移動する)
  (デザイン時と実行時のフォームの大きさが違うから)

(2)Windowsのタスクバーの表示は消えず、それより上の範囲がFormの
  取りうる最大表示範囲となっている。
  (実際にやりたいのはタスクバーも含めて画面いっぱいにする、
   つまりタスクバーは消えてほしい)

開発環境は15インチで1024*768の表示なのですが、実際にプログラムを
作った後は違う環境でも使う可能性があります。
何か良い案あれば教えてください。
よろしくお願いします。
#28072-0
RE#28064:フォーム表示を最大で表示
(1)は仕様です。
デザイン時にフォームの大きさを決めるときには、左上の位置が起点になりますので、
ただ単にフォームをお菊するとコントロールの位置が左上にきます。
大きさにあわせてコントロールの位置を移動したい場合は、
デザイン時のフォーム中心とリサイズ後のフォームの中心位置を利用すれば移動させれると思います。
つまり、リサイズ後のフォーム中心を起点にデザイン時のフォーム中心とコントロールの位置関係を再現すればいい。

(2)はデザイン時にフォームのスタイルを変更すればできます。
borderstyleを0にすればOK

いかがでしょうか?


> VB6.0 SP5を使っています。(OSはWindows2000です)
> Form_Load()時にフォームを画面いっぱいに表示したいのです。
> 考え付く方法として、
> 
>   '**********************
>   ' Form_Load時の処理
>   '**********************
>   Private Sub Form_Load()
>     Me.Left = 0
>     Me.Top = 0
>     Me.Width = Screen.Width
>     Me.Height = Screen.Height
>   End Sub
> 
> というのがあると思うのですが、下記の内容が不明のため、
> どのように設計すれば良いか分からずにいます。
> もちろん上記のコードが正しいかも定かではありません。
> 
> (1)Form_Load時に上記の通り最大化処理すると、Form上に貼り付けた
>   各コントロール(コマンドボタン、コンボボックスなど)がデザイ
>   ン時の表示と異なり、左上のほうに寄せて表示される。
>   (つまりデザイン画面でボタンを真中に表示させてても実際には左に移動する)
>   (デザイン時と実行時のフォームの大きさが違うから)
> 
> (2)Windowsのタスクバーの表示は消えず、それより上の範囲がFormの
>   取りうる最大表示範囲となっている。
>   (実際にやりたいのはタスクバーも含めて画面いっぱいにする、
>    つまりタスクバーは消えてほしい)
> 
> 開発環境は15インチで1024*768の表示なのですが、実際にプログラムを
> 作った後は違う環境でも使う可能性があります。
> 何か良い案あれば教えてください。
> よろしくお願いします。
#28077-0
RE#28064:フォーム表示を最大で表示
一番手っ取り早い方法とすれば、API関数でレジストリを
書き換える方法だと思われます。
すいませんが、タスクバーの設定にあたるキーがわかりませんので
ご自分で調べてください。

後もうひとつ方法があります。
アプリケーションを起動しているときは非表示にし
終了するときに表示するというのでしたら、
API関数でやろうと思えばできます。
非表示にしてしまいますので細心の注意が必要です。
もしエラーなどが発生し、強制終了してしまった場合は、
非表示のままとなってしまいますので、
それなりの対処方法を設けなければなりません。
サンプルプログラム
まず、API関数を使用してタスクバーを非表示にします。
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, _
                                    ByVal hWndInsertAfter As Long, _
                                    ByVal x As Long, ByVal y As Long, _
                                    ByVal cx As Long, ByVal cy As Long, _
                                    ByVal wFlags As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, 
                                                  ByVal nCmdShow As Long) As Long
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SW_HIDE = 0
Private Const SW_NORMAL = 1

Private Sub Form_Load()
    'まず、タスクバーを非表示にします。
    '"Shell_TrayWnd"はタスクバーのクラス名
    TaskBarhWnd = FindWindow("Shell_TrayWnd", vbNullString)
    rc = ShowWindow(TaskBarhWnd, SW_HIDE)
End Sub
Private Sub Form_UnLoad()
    'アプリケーションを終了するとき、タスクバーを表示する
    rc = ShowWindow(TaskBarhWnd, SW_NOMAL)
End Sub

お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)