ステータスバースタイルでテキストを表示          <TOP>


DrawStatusText ステータスバースタイルでテキストを表示

GetDC デバイスコンテキストのハンドルを取得

ReleaseDC デバイスコンテキストを解放

GetSysColor システムの背景色を取得

 

ステータスバースタイル(フレーム)でテキストを表示します。1行目はフラット、2行目は凹型フレーム、3行目は凸型フレームです。

 

'================================================================
'= ステータスバースタイルでテキストを表示
'=    (DrawStatusText.bas)
'================================================================
#include "Windows.bi"

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

' ステータスバースタイルでテキストを表示
Declare Sub Api_DrawStatusText Lib "comctl32" Alias "DrawStatusTextA" (ByVal hDC&, DrawRect As RECT, ByVal Text$, ByVal Flags&)

' RECT構造体の座標値を拡大・縮小
Declare Sub Api_InflateRect Lib "user32" Alias "InflateRect" (lpRect As RECT, ByVal x As Long, ByVal y As Long)

' 指定されたウィンドウのクライアント領域または画面全体を表すディスプレイデバイスコンテキストのハンドルを取得
Declare Function Api_GetDC& Lib "user32" Alias "GetDC" (ByVal hWnd&)

' デバイスコンテキストを解放
Declare Function Api_ReleaseDC& Lib "user32" Alias "ReleaseDC" (ByVal hWnd&, ByVal hDC&)

' システムの背景色を取得
Declare Function Api_GetSysColor& Lib "user32" Alias "GetSysColor" (ByVal nIndex&)

#define COLOR_BTNFACE 15                '3Dオブジェクトの表面色
#define SBT_NOBORDERS &H100             '枠線なし
#define SBT_POPOUT &H200                '凸型枠
#define SBT_RTLREADING &H400            'テキストは右から左に表示
#define SBT_SUNKEN &H0                  '凹型枠(デフォルト)

Var Shared Button1 As Object

Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14

'================================================================
'=
'================================================================
Declare Sub MainForm_Start edecl ()
Sub MainForm_Start()
    Var rgbColor As Long

    'Buttonの表面色を取得(EDE9EC)
    rgbColor = Api_GetSysColor(COLOR_BTNFACE)

    'Mainformを取得色で塗り
    SetBackColor rgbColor

    '画面を消去し
    cls

    'Mainformを表示
    ShowWindow -1

End Sub

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var rc As RECT
    Var hDC As Long
    Var txt As String
    Var Ret As Long

    txt = "http://tokovalue.web.infoseek.co.jp"
    hDC = Api_GetDC(GethWnd)

    rc.Left = 10
    rc.Top = 8
    rc.Right = 255
    rc.Bottom = 40

    'フラット
    Api_DrawStatusText hDC, rc, txt, SBT_NOBORDERS

    rc.Top = 43
    rc.Bottom = 75

    '凹型フレーム
    Api_DrawStatusText hDC, rc, txt, SBT_SUNKEN

    rc.Top = 78
    rc.Bottom = 110

    '凸型フレーム
    Api_DrawStatusText hDC, rc, txt, SBT_POPOUT

    Ret = Api_ReleaseDC(GethWnd, hDC)
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End