コマンドボタン内の文字位置設定         <TOP>


コマンドボタン内の文字位置を設定します。

GetWindowLong 指定されたウィンドウの属性を取得

SetWindowLong 指定されたウィンドウの属性を変更

 

 

'================================================================
'= コマンドボタン内の文字位置設定
'=    (SetWindowLong.bas)
'================================================================
#include "Windows.bi"

#define BS_LEFT &H100                   'ボタンの中にテキストを左揃え
#define BS_RIGHT &H200                  'ボタンの中にテキストを右揃え
#define BS_CENTER &H300                 'ボタンの中にテキストを中央揃え 
#define BS_TOP &H400                    'ボタンの上部にテキストを置く
#define BS_BOTTOM &H800                 'ボタンの下部にテキストを置く
#define GWL_STYLE -16                   'アプリケーションのインスタンスハンドル

' 指定されたウィンドウの属性を変更
Declare Function Api_SetWindowLong& Lib "user32" Alias "SetWindowLongA" (ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&)

' 指定されたウィンドウの属性を取得
Declare Function Api_GetWindowLong& Lib "user32" Alias "GetWindowLongA" (ByVal hWnd&, ByVal nIndex&)

Var Shared Button(8) As Object

For i = 0 To 8
    Button(i).Attach GetDlgItem("Button" & Trim$(Str$(i + 1)))
    Button(i).SetFontSize 14
Next

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

    For i = 0 To 8
        Ret = Api_GetWindowLong(Button(i).GethWnd, GWL_STYLE)
        Select Case i
            Case 0
                Ret = Api_SetWindowLong(Button(i).GethWnd, GWL_STYLE, BS_RIGHT Or Ret)
            Case 1
                Ret = Api_SetWindowLong(Button(i).GethWnd, GWL_STYLE, BS_CENTER Or Ret)
            Case 2
                Ret = Api_SetWindowLong(Button(i).GethWnd, GWL_STYLE, BS_LEFT Or Ret)
            Case 3
                Ret = Api_SetWindowLong(Button(i).GethWnd, GWL_STYLE, BS_TOP Or BS_RIGHT Or Ret)
            Case 4
                Ret = Api_SetWindowLong(Button(i).GethWnd, GWL_STYLE, BS_TOP Or Ret)
            Case 5
                Ret = Api_SetWindowLong(Button(i).GethWnd, GWL_STYLE, BS_TOP Or BS_LEFT Or Ret)
            Case 6
                Ret = Api_SetWindowLong(Button(i).GethWnd, GWL_STYLE, BS_BOTTOM Or BS_RIGHT Or Ret)
            Case 7
                Ret = Api_SetWindowLong(Button(i).GethWnd, GWL_STYLE, BS_BOTTOM Or Ret)
            Case 8
                Ret = Api_SetWindowLong(Button(i).GethWnd, GWL_STYLE, BS_BOTTOM Or BS_LEFT Or Ret)
        End Select
        Button(i).SetFocus
    Next
End Sub

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