APIサンプル


VB Tips And Sample(HOME)


VBからAPIを使う方法
必要なAPIを探して使う方法

MSDNライブラリ 「グラフィックおよびマルチメディア」-「GDI」-「SDKドキュメント」
-「Windows GDI」-「描画」-「リファレンス」-「関数」-「DrawEdge」
(やたら深いですが、配布されているものはSDKドキュメントのカテゴリがあります。)
でマイクロソフトMSDNオンラインを見てみましょう。
ページを開いたら一番下までスクロールします。
すると

対応情報
Windows NT/2000:Windows NT 3.51 以降
Windows 95/98:Windows 95 以降
ヘッダー:Winuser.h 内で宣言、Windows.h をインクルード
という箇所があります。

必要なのは、この「Winuser.h」です。
このファイルに、この「DrawEdge」が使う定数が定義されています。

ウィンドウズファイルの検索で「Winuser.h」を検索します。

見つかったら、コピーしたものをテキストで開いて見ます。
くれぐれも削除しないようにして下さい。
その中で、「BDR_RAISEDINNER」を検索すると、

#define BDR_RAISEDINNER 0x004

という記述があります。
必要なのはこれで、この定数を
VBの16進数表記になおし、関数のパラメータに代入します。

「0x004」はVBでは「&H4」になります。([VB] 16 進数値を長整数に変換する方法

下に使用例を作りましたので、試してみてください。


ボタンを描く。


モジュール
Public Declare Function DrawEdge Lib "user32" (ByVal hdc As Long, qrc As RECT, ByVal edge As Long, ByVal grfFlags As Long) As Long


Type RECT
 left As Long
 top As Long
 right As Long
 bottom As Long
End Type


フォームへ
Private Sub Command1_Click()
'浮き上がらせる
Dim ret
Dim myr As RECT
myr.left = 10
myr.right = 100
myr.bottom = 100
myr.top = 10

ret = DrawEdge(Me.hdc, myr, &H1 + &H4, &H1 + &H4 + &H2 + &H8)
End Sub

Private Sub Command2_Click()
'押し込む
Dim ret
Dim myr As RECT
myr.left = 10
myr.right = 100
myr.bottom = 100
myr.top = 10

ret = DrawEdge(Me.hdc, myr, &H2 + &H8, &H1 + &H4 + &H2 + &H8)
End Sub


終了時 アニメーションで終了する方法

モジュールへ
Public Declare Function DrawAnimatedRects Lib "user32" (ByVal hWnd As Long, ByVal idAni As Long, lprcFrom As RECT, lprcTo As RECT) As Long


フォームへ
Private Sub Form_Unload(Cancel As Integer)

'終了時 アニメーションで終了する
Dim ret
Dim Are As RECT
Dim Bre As RECT
Are.Left = (Me.Left / Screen.TwipsPerPixelX)
Are.Right = (Me.Left + Me.Width) / Screen.TwipsPerPixelX
Are.Top = (Me.Top / Screen.TwipsPerPixelY)
Are.Bottom = (Me.Top + Me.Height) / Screen.TwipsPerPixelY

Bre.Left = 0
Bre.Right = 0
Bre.Top = 0
Bre.Bottom = 0

ret = DrawAnimatedRects(Me.hWnd, 3, Are, Bre)

End Sub



VB Tips And Sample(HOME)