矩形に3D効果を与える
矩形に3D効果を与えるサンプルです。
サンプルの実行画面

APIの宣言
[DrawEdge .bas]
'DrawEdge =>矩形に3D効果を与える '<引数> 'hDC: デバイスコンテキストのハンドルル 'qrc: RECT構造体 'edge: 定数(EDGE_××参照) 'grfFlags: 定数(BF_××参照) '@戻り値@ '正常終了0以外 Public Declare Function DrawEdge Lib "user32" (ByVal hDC As Long, qrc As RECT, ByVal edge As Long, ByVal grfFlags As Long) As Long Public Type RECT Left As Long '左上隅のX座標 Top As Long '左上隅のY座標 Right As Long '右下隅のX座標 Bottom As Long '右下隅のY座標 End Type Public Const BF_BOTTOM = &H8 '矩形の下辺 Public Const BF_LEFT = &H1 '矩形の左辺 Public Const BF_RIGHT = &H4 '矩形の右辺 Public Const BF_TOP = &H2 '矩形の上辺 Public Const BF_RECT = (BF_LEFT Or BF_TOP Or BF_RIGHT Or BF_BOTTOM) Public Const BDR_SUNKENINNER = &H8 '内側が凹 Public Const BDR_SUNKENOUTER = &H2 '外側が凹 Public Const BDR_SUNKEN = &HA ' Public Const BDR_RAISED = &H5 ' Public Const BDR_OUTER = &H3 ' Public Const BDR_INNER = &HC ' Public Const BDR_RAISEDINNER = &H4 '内側が凸 Public Const BDR_RAISEDOUTER = &H1 '外側が凸 Public Const EDGE_BUMP = (BDR_RAISEDOUTER Or BDR_SUNKENINNER) '枠表示 Public Const EDGE_SUNKEN = (BDR_SUNKENOUTER Or BDR_SUNKENINNER) '凹表示 Public Const EDGE_RAISED = (BDR_RAISEDOUTER Or BDR_RAISEDINNER) '凸表示
APIの呼び出し
[DrawEdge .frm]
Dim Flag As Boolean 'マウスが押されたのか判別するフラグ Dim nRECT As RECT 'Rect構造体 Private Sub Form_Load() Form1.ScaleMode = 3 End Sub Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) nRECT.Left = X nRECT.Top = Y Flag = True End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If Flag = True Then nRECT.Right = X nRECT.Bottom = Y Ret = DrawEdge(hDC, nRECT, EDGE_RAISED, BF_RECT) Flag = False '強制的に更新する Refresh End If End Sub
ソースコード一式のダウンロード
vbapi_drawedge.zip 2.08 KB (2,130 バイト)
このサンプルの動作環境について
このサンプルは 「Windows98」及び「Microsoft Visual Basic 5.0 Professional Edition」で確認しております。環境が異なる場合は正常に動作しない場合もございますのでご了承下さい。
スポンサーリンク
関連記事
前の記事: | 「最近使ったファイル」を操作する |
次の記事: | 画面をキャプチャする |
公開日:2015年03月04日
記事NO:00348