画像を表示する


ももんじゃ  2010-04-04 15:39:32  No: 146786  IP: [192.*.*.*]

画像をウインドウ無しで(タイトルバーや枠、アドレスバー無し)
画像そのものをデスクトップに全体表示させたいのですが
どうすればいいでしょうか
スタートボタンなども覆いかぶさるようにしたいです。

編集 削除
魔界の仮面弁士  2010-04-05 10:19:07  No: 146787  IP: [192.*.*.*]

画面いっぱいにフォームを表示して、その上に画像を表示させれば良いとは思いますが、
今回の場合、マルチモニター環境ではどのように出力する予定なのでしょうか? たとえば、
  ****┌─┐
  ┌─┤*2│
  │*1├─┴┐
  └─┤**3*│
  ****└──┘
のように、サイズや端座標の異なるモニタを組み合わせたデスクトップ環境ではどうされますか?

各モニターに同じ画像を表示するのでしょうか、それとも
  ┏━┯━┯┓
  ┠─┤*2│┃
  ┃*1├─┴┨
  ┠─┤**3*┃
  ┗━┷━━┛
のようにデスクトップ全体を領域として、モニタの無い位置(この場合は左上/左下/右上)を
クリッピングするのでしょうか。あるいはデスクトップ領域の一部のみを描画エリアと
するのでしょうか。もしくは、出力先は常にプライマリモニターだけで構わないのでしょうか?


とりあえず、プライマリモニターのみ使うとしたら、こんな感じ。

まず、フォームのプロパティを
  ・FormBorderStyle = None
  ・BackColor = 任意(White とか Black とか)
  ・MaximizeBox = False
  ・MinimizeBox = False
  ・ShowIcon = False
  ・ShowInTaskbar = False
  ・StartPosition = Manual
  ・TopMost = True
にしておき、そこに PictureBox を貼ります。PictureBox のプロパティはこんな感じ。
  ・BackColor = Transparent
  ・Dock = Fill
  ・SizeMod = Zoom
そして、以下のイベントを追加します。

Public Class Form1
  Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    Me.Bounds = Screen.PrimaryScreen.Bounds  'プライマリモニターいっぱいに表示
    PictureBox1.LoadAsync("C:\Windows\隅田川.bmp") '表示させたい画像
  End Sub
  Private Sub PictureBox1_DoubleClick(ByVal sender As Object, ByVal e As EventArgs) Handles PictureBox1.DoubleClick
    Me.Close()  'ダブルクリックで終了
  End Sub
End Class

編集 削除