tagCANDY CGI VBレスキュー(花ちゃん) - 透明のフォームを作成する(VB6.0) - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
透明のフォームを作成する(VB6.0)
元に戻る スレッド一覧へ 記事閲覧
このページ内の検索ができます。(AND 検索や OR 検索のような複数のキーワードによる検索はできません。)

透明のフォームを作成する(VB6.0) [No.90の個別表示]
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
日時: 2007/07/16 05:57
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[描画・画像][フォーム][]                                        *
* キーワード:透過処理,透明,半透明,グラフィック,ウィンドウ,                       *
***********************************************************************************

元質問:BitBltの使い方、他 - おじん  2003/12/25-14:56 No.7323

初期Formをスクリーンの中央に表示し、そのFormの背景を「その位置」のスクリーンの画像にしたい。ただし、Formを動かしたときは、今は考えない。


--------------------------------------------------------------------------
Layered Window その1 - 魔界の仮面弁士  2003/12/25-18:18 No.7334
--------------------------------------------------------------------------

それはさておき、Layered Windowを使った「透過」のサンプルです。
Windows 2000/XP/2003などで動作します。
# Windows Longhorn や MCE2004での動作は未検証。

Option Explicit

Private Declare Function SetWindowLongW Lib "user32" _
   (ByVal hWnd As Long, _
    ByVal Index As Long, _
    ByVal NewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" _
   (ByVal hWnd As Long, _
    ByVal Key As Long, _
    ByVal Alpha As Byte, _
    ByVal Flag As Long) As Long

Private Const GWL_EXSTYLE As Long = -20&
Private Const WS_EX_LAYERED As Long = &H80000
Private Const LWA_COLORKEY As Long = 1&
Private Const LWA_ALPHA As Long = 2&

Private Sub Form_Load()
    AutoRedraw = True
    BackColor = vbCyan
    ForeColor = vbWhite
    Font.Name = "MS 明朝"
    Font.Size = 32
    Font.Bold = True
    Print "魔界の仮面弁士"

    SetWindowLongW hWnd, GWL_EXSTYLE, WS_EX_LAYERED
    SetLayeredWindowAttributes hWnd, vbCyan, 0&, LWA_COLORKEY
End Sub


---------------------------------------------------------------
上記の実行画像を添付しておきます。
(画像をクリックすると元のサイズで見られます。)

  上記の実行結果                 下記の実行結果
メンテ

Page: 1 |

半透明のフォームを作成する(VB6.0)  (No.1の個別表示) [スレッド一覧へ]
日時: 2011/04/05 13:20
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[描画・画像][フォーム][]                                        *
* キーワード:透過処理,透明,半透明,グラフィック,ウィンドウ,                       *
***********************************************************************************

---------------------------------------------------------------------
Layered Window その2 - 魔界の仮面弁士  2003/12/25-18:23 No.7335
---------------------------------------------------------------------

今度は、完全に切り抜くのではなく、半透明にするサンプルです。

フォームに、水平スクロールバーコントロールを貼っておいてください。

'====================
Option Explicit

Private Declare Function SetWindowLongW Lib "user32" _
   (ByVal hWnd As Long, _
    ByVal Index As Long, _
    ByVal NewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" _
   (ByVal hWnd As Long, _
    ByVal Key As Long, _
    ByVal Alpha As Byte, _
    ByVal Flag As Long) As Long

Private Sub Form_Load()
    HScroll1.Min = 0
    HScroll1.Max = 255
    HScroll1.Value = 180
    Caption = "スクロールバーを左端まで移動させると、えらいことになります(泣)"
End Sub

Private Sub Form_Paint()
    Const GWL_EXSTYLE As Long = -20&
    Const WS_EX_LAYERED As Long = &H80000
    Const LWA_ALPHA As Long = 2&
    
    SetWindowLongW hWnd, GWL_EXSTYLE, WS_EX_LAYERED
    SetLayeredWindowAttributes hWnd, 0&, CLng(HScroll1.Value), LWA_ALPHA
End Sub

Private Sub HScroll1_Change()
    Refresh
End Sub


-----------------------------------------------------
上記の実行結果は、先頭の記事の右側の図になります。
     by 花ちゃん
-----------------------------------------------------
メンテ

Page: 1 |

 投稿フォーム               スレッド一覧へ
題  名 スレッドをトップへソート
名  前
パスワード (記事メンテ時に使用)
投稿キー (投稿時 投稿キー を入力してください)
コメント

   クッキー保存   
スレッド一覧へ