透明なウィンドウを作る

実行画面


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

宣 言

(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ワンポイントテクニック目次に戻る

PC用眼鏡【管理人も使ってますがマジで疲れません】 解約手数料0円【あしたでんき】 Yahoo 楽天 NTT-X Store

無料ホームページ 無料のクレジットカード 海外格安航空券 ふるさと納税 海外旅行保険が無料! 海外ホテル