ウインドウを透明にする
ウインドウを透明にするサンプルです。
サンプルの実行画面
 
ソースコード
[Trans.frm]
'■CreateRectRgn
'矩形の領域を作成してそのハンドルを取得する
'<引数>
'X1   矩形の左上隅のX座標
'Y1   矩形の左上隅のY座標
'X2   矩形の右下隅のX座標
'Y2   矩形の右下隅のX座標
'<戻り値>
'正常終了の時、矩形領域のハンドル
Private Declare Function CreateRectRgn Lib "GDI32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
'■SetWindowRgn
'ウインドウの描画領域を設定する
'<引数>
'hWnd    ウインドウのハンドル
'hRgn    領域のハンドル
'bRedraw  領域作成後の操作↓
'            再描画するとき  1
'            再描画しないとき 0
'<戻り値>
'正常終了0以外
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
'■DeleteObject
'オブジェクトを削除する
'<引数>
'hObject
'<戻り値>
'正常終了0以外
Private Declare Function DeleteObject Lib "GDI32" (ByVal hObject As Long) As Long
'■SendMessage
'指定のウインドウにメッセージを送る
'<引数>
'hWnd      ウインドウのハンドル
'wMsg     定数(WM_××参照)
'wParam    定数 (HTCAPTION)
'lParam    常に0
'<戻り値>
'通常使わない
'定数はこれ以外にもある=>APIビューワー参照
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
'■ReleaseCapture
'マウスキャプチャを解放
Private Declare Sub ReleaseCapture Lib "user32" ()
Const WM_NCLBUTTONDOWN = &HA1
Const HTCAPTION = 2
Dim Flag As Boolean   'フラグ
Dim hRgn As Long      '領域のハンドル
Private Sub Command1_Click()
 Dim Ret As Long
 
   '領域を作成
     hRgn = CreateRectRgn(0, 0, Command1.Width, Command1.Height)
   
   '透明ウインドウにする
     Call SetWindowRgn(Form1.hWnd, hRgn, 1)
     
     Command1.Caption = "マウスの右ボタンで " & vbCrLf & "終了"
     
     Flag = True
End Sub
Private Sub command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
 Dim Ret As Long
    
   If Flag = False Then Exit Sub
    
     If Button = 1 Then
          
          'マウスキャプチャを解放する
          ReleaseCapture
          'Form1をドラッグせよという命令を送る
          Ret = SendMessage(Form1.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0)
     Else
       
          'オブジェクトを削除する
            Ret = DeleteObject(hRgn)
            Unload Me
            End
     End If
End Sub
Private Sub Form_Load()
'ピクセルにする
 Form1.ScaleMode = 3
End Sub
ソースコード一式のダウンロード
vbapi_trans.zip 1.57 KB (1,610 バイト)
このサンプルの動作環境について
このサンプルは 「Windows98」及び「Microsoft Visual Basic 5.0 Professional Edition」で確認しております。環境が異なる場合は正常に動作しない場合もございますのでご了承下さい。
スポンサーリンク
      
      
      
      
      
    
関連記事
| 前の記事: | ウインドウのタイトルを変更する | 
| 次の記事: | ウインドウをマウス操作で移動する | 
公開日:2015年03月06日
記事NO:00427 
プチモンテ ※この記事を書いた人
|  | |
|  | 💻 ITスキル・経験 サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。 画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ | 
| 🎵 音楽制作 BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は抒情詩、抒情的な楽曲が多い。楽曲制作は🔰2023年12月中旬 ~ | |

 
        



 
  
 


