フレームコントロールを描画(U) <TOP>
指定されたタイプとスタイルを備える、ボタンやスクロールバーなどのフレームコントロールを描画します。
DrawFrameControl フレームコントロールを描画
GetDC ディスプレイデバイスコンテキストのハンドルを取得
ReleaseDC デバイスコンテキストを解放
'================================================================ '= フレームコントロールを描画(U) '= (DrawFrameControl2.bas) '================================================================ #include "Windows.bi" Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type ' 指定されたタイプとスタイルを備える、ボタンやスクロールバーなどのフレームコントロールを描画 Declare Function Api_DrawFrameControl& Lib "user32" Alias "DrawFrameControl" (ByVal hDC&, lpRect As RECT, ByVal un1&, ByVal un2&) ' 指定されたウィンドウのクライアント領域または画面全体を表すディスプレイデバイスコンテキストのハンドルを取得 Declare Function Api_GetDC& Lib "user32" Alias "GetDC" (ByVal hWnd&) ' デバイスコンテキストを解放 Declare Function Api_ReleaseDC& Lib "user32" Alias "ReleaseDC" (ByVal hWnd&, ByVal hDC&) #define DFC_CAPTION 1 'タイトルバーを描画 #define DFCS_CHECKED &H400 'チェックされているボタンを描画 #define DFCS_FLAT &H4000 '平らなデザインのボタンを描画 #define DFCS_INACTIVE &H100 '使用不可 #define DFCS_MONO &H8000 'モノクロの境界 #define DFCS_PUSHED &H200 '押された状態 #define DFCS_CAPTIONCLOSE 0 '[閉じる]ボタン #define DFCS_CAPTIONHELP 4 'ヘルプ(?)ボタン #define DFCS_CAPTIONMAX 2 '[最大化]ボタン #define DFCS_CAPTIONMIN 1 '[最小化]ボタン #define DFCS_CAPTIONRESTORE 3 '[元のサイズに戻す]ボタン Var Shared Combo1 As Object Combo1.Attach GetDlgItem("Combo1") : Combo1.SetFontSize 12 Var Shared VarrView(9) As String Var Shared VarrValue(9) As Long Var Shared vShowVal As Long Var Shared hDC As Long '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() Var i As Integer hDC = Api_GetDC(GethWnd) VarrView(0) = "チェックされているボタンを描画" VarrView(1) = "平らなデザインのボタンを描画" VarrView(2) = "使用不可" VarrView(3) = "モノクロの境界" VarrView(4) = "押された状態" VarrView(5) = "[閉じる]ボタン" VarrView(6) = "[最小化]ボタン" VarrView(7) = "[最大化]ボタン" VarrView(8) = "[元のサイズに戻す]ボタン" VarrView(9) = "ヘルプ(?)ボタン" VarrValue(0) = DFCS_CHECKED VarrValue(1) = DFCS_FLAT VarrValue(2) = DFCS_INACTIVE VarrValue(3) = DFCS_MONO VarrValue(4) = DFCS_PUSHED VarrValue(5) = DFCS_CAPTIONCLOSE VarrValue(6) = DFCS_CAPTIONMIN VarrValue(7) = DFCS_CAPTIONMAX VarrValue(8) = DFCS_CAPTIONRESTORE VarrValue(9) = DFCS_CAPTIONHELP For i = 0 To 9 Combo1.AddString VarrView(i) Next End Sub '================================================================ '= '================================================================ Declare Sub Combo1_Change edecl () Sub Combo1_Change() Var rc As RECT vShowVal = VarrValue(Combo1.GetCursel) SetWindowtext " uState:&H" & Hex$(vShowVal) rc.Left = 15 rc.Right = 30 rc.Top = 50 rc.Bottom = 65 Ret = Api_DrawFrameControl(hDC, rc, DFC_CAPTION, vShowVal) End Sub '================================================================ '= '================================================================ Declare Sub MainForm_QueryClose edecl () Sub MainForm_QueryClose() Var Ret As Long Ret = Api_ReleaseDC(GethWnd, hDC) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End