透明なウィンドウを作る

実行画面


<スクリーンキャプチャの応用>

宣 言

(Private) Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

※Privateは必要に応じて削除またはPublicに変更

引 数 説 明

KeyNumber

Byte

仮想キーコード

bScan

Byte

KeyNumberのOEMスキャンコード(今回は1)


サ ン プ ル プ ロ グ ラ ム

まずフォームの「BorderStyle」プロパティを「0−なし」に指定します。そしてフォームにテキストボックス及びピクチャーボックスを配置し、コードを張りつけて実行します。すると、テキストボックスだけが表示されます。

動作確認:Visual Basic 5.0,Windows98

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Sub Form_load()
Form1.Hide
keybd_event &H2C, 1, 0, 0 'PrintScreenキーの発行
DoEvents
Picture1.Picture = Clipboard.GetData
Picture1.Top = -Form1.Top - (Screen.TwipsPerPixelY * 2)
Picture1.Left = -Form1.Left - (Screen.TwipsPerPixelX * 2)
Picture1.Height = Form1.Top + Form1.Height + (Screen.TwipsPerPixelY * 4)
Picture1.Width = Form1.Left + Form1.Width + (Screen.TwipsPerPixelX * 4)
Text1.Top = - Picture1.Top
Text1.Left = - Picture1.Left
Form1.Show
End Sub

備 考

これはクリップボードを通じてスクリーンキャプチャを行っているので、一回フォームを消去してからでないと後ろのものがキャプチャできないので不便です。またアクティブウィンドウが変化すると変になります。そこで、「CreateDC+BitBlt」で定期的に同様の動作をさせると便利です。

透明なウィンドウの作成(2)も参考にしてください(こちらのほうが高度、実用的)

フォーム透明化モジュールダウンロード(7KB)

トップに戻る
Visual Basicワンポイントテクニック目次に戻る

Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!