|
▼ケン坊 さん:
>はじめまして。2つほど聞きたいことがあるのですが、
>
>サイクロトロンというソフトを見たのですが、
>あれはユーザーフォームの形を変えたり透過したりしているのですが
>あれはどのようにしたら、できるのですか????
>
>もう一つの質問は、PSET(x,y)というのを知ったのですが、
>何故か実行できませんでした。
>ちなみに線を引く、LINEというのも実行できませんでした・・・
>
>アドバイスお願いします!!
おはようございます。ちんといいます。
透過についてですが、丸くフォームを切り抜く関数と、四角くフォームを切り抜く
関数を掲載します。
(1)標準モジュールへの定義
Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Declare Function CreateRoundRectRgn Lib "gdi32" ( _
ByVal X1 As Long, ByVal Y1 As Long, _
ByVal X2 As Long, ByVal Y2 As Long, _
ByVal X3 As Long, ByVal Y3 As Long) As Long
Private hRgn As Long
Declare Function GetActiveWindow Lib "user32" () As Long
Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Public Function xGetActiveWindow() As Long
xGetActiveWindow = GetActiveWindow
End Function
(2)ユーザーフォームの定義
ユーザーフォームにボタンを2つ配置して下さい。
Private Sub CommandButton1_Click()
Dim hwnd As Long
hwnd = xGetActiveWindow
hRgn = CreateRectRgn(0, 0, 300, 300) '*** 四角形の大きさ
SetWindowRgn hwnd, hRgn, True
End Sub
Private Sub CommandButton2_Click()
Dim hwnd As Long
hwnd = xGetActiveWindow
hRgn = CreateRoundRectRgn(0, 0, _
300, _
300, _
320, 320) '*** 円形の大きさ
SetWindowRgn hwnd, hRgn, True
End Sub
以上、参考までに・・・
|
|