最終更新日 :
VB Tips

DrawFrameControl()APIを行うと、Windowsで普段使用されているオブジェクトを描画できます。下の絵を見て頂くと一目瞭然でしょう。

Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Declare Function DrawFrameControl Lib "user32" (ByVal hdc As Long, lpRect As RECT, ByVal un1 As Long, ByVal un2 As Long) As Long

'/* flags for DrawFrameControl */
' ☆ 引数 un1
Public Const DFC_CAPTION = 1 ' -タイトルバー関係
Public Const DFC_MENU = 2 ' -メニュー関係
Public Const DFC_SCROLL = 3 ' -スクロールバー関係
Public Const DFC_BUTTON = 4 ' -ボタン関係

' ☆ 引数 un2
Public Const DFCS_CAPTIONCLOSE = &H0 ' -Xボタン
Public Const DFCS_CAPTIONMIN = &H1 ' -最小化ボタン
Public Const DFCS_CAPTIONMAX = &H2 ' -最大化ボタン
Public Const DFCS_CAPTIONRESTORE = &H3 ' -元に戻すボタン
Public Const DFCS_CAPTIONHELP = &H4 ' -ヘルプボタン

Public Const DFCS_MENUARROW = &H0 ' -ポップアップメニュー
Public Const DFCS_MENUCHECK = &H1 ' -チェックマーク
Public Const DFCS_MENUBULLET = &H2 ' -オプションマーク
Public Const DFCS_MENUARROWRIGHT = &H4 ' -矢印マーク

Public Const DFCS_SCROLLUP = &H0 ' -上ボタン
Public Const DFCS_SCROLLDOWN = &H1 ' -下ボタン
Public Const DFCS_SCROLLLEFT = &H2 ' -左ボタン
Public Const DFCS_SCROLLRIGHT = &H3 ' -右ボタン
Public Const DFCS_SCROLLCOMBOBOX = &H5 ' -コンボボックス用ボタン
Public Const DFCS_SCROLLSIZEGRIP = &H8 ' -サイズグリップ(ウィンドウの右下にある)
Public Const DFCS_SCROLLSIZEGRIPRIGHT = &H10 ' -?

Public Const DFCS_BUTTONCHECK = &H0 ' -チェックボックス
Public Const DFCS_BUTTONRADIOIMAGE = &H1 ' -オプションボタン
Public Const DFCS_BUTTONRADIOMASK = &H2 ' -オプションボタン用マスク
Public Const DFCS_BUTTONRADIO = &H4 ' -背景が固定のオプションボタン
Public Const DFCS_BUTTON3STATE = &H8 ' -3ステート(網掛け)チェックボックス
Public Const DFCS_BUTTONPUSH = &H10 ' -コマンドボタン

' ☆共通のフラグ
Public Const DFCS_INACTIVE = &H100 ' -Enabled = False の状態
Public Const DFCS_PUSHED = &H200 ' -マウスボタンが押された状態
Public Const DFCS_CHECKED = &H400 ' -チェックされた状態
Public Const DFCS_ADJUSTRECT = &H2000 ' -指定された矩形に合わせる(私のところでは意味をなさない)
Public Const DFCS_FLAT = &H4000 ' -ある意味、こっちがマウスボタンが押された状態
Public Const DFCS_MONO = &H8000 ' -白黒、じゃない。黒、白、灰色で描画される。
共通フラグでは
共通フラグは、複数選択が可能です。例えば、DFCS_BUTTON、DFCS_FLAT、DFCS_CHECKEDを組み合わせると、平坦でチェックされた(ディザ表示)ボタンを描画することができます。

サンプル : dfcsamp.lzh(VB5)
DrawFrameControl() APIを使用したサンプルプロジェクトです。Readme.txtはありませんが、単純なので理解して頂けると思います。尚、実行画面はあの絵(↑)です。(作成 : SP3)

Copyright (C) 1998 Satoshi Tadaフィードバックはこちら
Home