テキストをグレー表示で出力          <TOP>


テキストをグレー表示で出力します。その下に同じ文字列を描画しています。

GrayString テキストをグレー表示で出力

SetBkMode バックグラウンドの塗りつぶしモード設定

TextOut 文字を描画

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

 

'================================================================
'= テキストをグレー表示で出力
'=    (GrayString.bas)
'================================================================
#include "Windows.bi"

' テキストをグレー表示で出力
Declare Function Api_GrayString& Lib "user32" Alias "GrayStringA" (ByVal hDC&, ByVal hBrush&, ByVal lpOutputFunc&, ByVal lpData$, ByVal nCount&, ByVal X&, ByVal Y&, ByVal nWidth&, ByVal nHeight&)

' バックグラウンドの塗りつぶしモード設定
Declare Function Api_SetBkMode& Lib "gdi32" Alias "SetBkMode" (ByVal hDC&, ByVal iBkMode&)

' 文字を描画
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 TRANSPARENT 1              '背景色を設定しない

'================================================================
'=
'================================================================
Declare Sub MainForm_Start edecl ()
Sub MainForm_Start()
    Var Str As String
    Var hDC As Long
    Var Ret As Long

    Str = "北海道札幌市白石区"
    hDC = Api_GetDC(GethWnd)

    Ret = Api_GrayString(hDC, ByVal 0, ByVal 0, Str, Len(Str), 45, 30, 0, 0)
    Ret = Api_SetBkMode(hDC, TRANSPARENT)
    Ret = Api_TextOut(hDC, 45, 50, Str, Len(Str))
    Ret = Api_ReleaseDC(GethWnd, hDC)
End Sub

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