- 日時: 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
--------------------------------------------------------------- 上記の実行画像を添付しておきます。 (画像をクリックすると元のサイズで見られます。)
上記の実行結果 下記の実行結果
|