文字を右・左揃えで描画          <TOP>


文字を左揃え・右揃えで描画します。

SetTextAlign 文字を描画する時の書式を設定

TextOut 文字を描画

 

 

'================================================================
'= TextOut・SetTextAlign
'=    (TextOut.bas)
'================================================================
#include "Windows.bi"

' 文字を描画する時の書式を設定(右揃え・左揃え)
Declare Function Api_SetTextAlign& Lib "gdi32" Alias "SetTextAlign" (ByVal hDC&, ByVal wFlags&)

' 文字を描画
Declare Function Api_TextOut& Lib "gdi32" Alias "TextOutA" (ByVal hDC&, ByVal nXStart&, ByVal nYStart&, ByVal lpString$, ByVal cbString&)

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

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

#define TA_BASELINE 24                  '参照点と、テキストのベースラインを揃える
#define TA_BOTTOM 8                     '参照点と、境界長方形の下端を揃える
#define TA_CENTER 6                     '参照点と、境界長方形の水平方向の中心を揃る
#define TA_LEFT 0                       '参照点と、境界長方形の左端を揃える(デフォルト)
#define TA_MASK (TA_BASELINE Or TA_CENTE Or TA_UPDATECP) '
#define TA_NOUPDATECP 0                 '各テキスト出力関数が呼び出されても、カレントポジションを更新しない(デフォルト)
#define TA_RIGHT 2                      '参照点と、境界長方形の右端を揃える
#define TA_TOP 0                        '参照点と、境界長方形の上端を揃える(デフォルト)
#define TA_UPDATECP 1                   '各テキスト出力関数が呼び出されると、カレントポジションを更新する

#define lStr "AlignLeft"
#define cStr "AlignCenter"
#define rStr "AlignRight"

'================================================================
'=
'================================================================
Declare Sub Mainform_Start edecl ()
Sub Mainform_Start()
    Var Ret As Long
    Var hDC As Long

    hDC = Api_GetDC(GethWnd)

    Line(120, 0)-(120, 140),, 14

    '左揃え
    Ret = Api_SetTextAlign(hDC, TA_LEFT Or TA_TOP Or TA_NOUPDATECP)
    Ret = Api_TextOut(hDC, 120, 10, lStr, Len(lStr))
    SetDrawWidth 3
    Pset(120, 10), 5
    SetDrawWidth 0

    '中央揃え
    Ret = Api_SetTextAlign(hDC, TA_CENTER Or TA_TOP Or TA_NOUPDATECP)
    Ret = Api_TextOut(hDC, 120, 35, cStr, Len(cStr))
    SetDrawWidth 3
    Pset(120, 35), 5
    SetDrawWidth 0

    '右揃え
    Ret = Api_SetTextAlign(hDC, TA_RIGHT Or TA_TOP Or TA_NOUPDATECP)
    Ret = Api_TextOut(hDC, 120, 60, rStr, Len(rStr))
    SetDrawWidth 3
    Pset(120, 60), 5
    SetDrawWidth 0
End Sub

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