TOP > カテゴリ > Visual Basic >

アップダウンコントロールを作成する

アップダウンコントロールを作成するサンプルです。

サンプルの実行画面

APIの宣言

[UpDown.bas]

'CreateUpDownControl=>アップダウンコントロールを作成する

'<引数>
'dwStyle:   定数参照
'x:         左上隅のX座標
'y:         左上隅のY座標
'cx:        幅
'cy:        高さ
'hParent:   親ウインドウのハンドル
'nID:       識別子
'hInst:     インスタンスハンドル
'hBuddy:    コントロールと関連付けるウインドウのハンドル
'nUpper:    上限値
'nLower:    下限値
'nPos:      初期値


'<戻り値>
'コントロールのハンドル

Declare Function CreateUpDownControl Lib "COMCTL32.DLL" (ByVal dwStyle As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal hParent As Long, ByVal nID As Long, ByVal hInst As Long, ByVal hBuddy As Long, ByVal nUpper As Long, ByVal nLower As Long, ByVal nPos As Long) As Long


'DestroyWindow=>ウインドウを破棄する

'<引数>
'hWnd:ウインドウのハンドル

'<戻り値>
'正常終了0以外

Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long

Const WS_CHILD = &H40000000    '親ウインドウを持つ子ウインドウを作成
Const WS_VISIBLE = &H10000000  '表示

Const CTL_RIGHT = &H4        'コントロールを右側に配置
Const CTL_LEFT = &H8         'コントロールを左側に配置
Const CTL_VIBILE = &H2       '数値を表示


'------------------------------------------------------------
'■関数名  UpDown
'■用途   アップダウンコントロールを作成する
'■引数
'     hWnd      親ウインドのハンドル
'     hBuddy   ウントロールと関連付けるウインドウのハンドル
'     Max     上限値
'     Mini    下限値
'     Value    初期値
'■戻り値
'    正常終了 コントロールのハンドル
'------------------------------------------------------------

Public Function UpDown(hwnd As Long, _
                        hBuddy As Long, _
                         Max As Long, _
                           Mini As Long, _
                            Value As Long _
                             ) As Long

'定数設定
dwStyle = WS_CHILD Or WS_VISIBLE
dwStyle = dwStyle Or CTL_VIBILE Or CTL_RIGHT

'コントロールを作成
UpDown = CreateUpDownControl(dwStyle, _
                                 0, 0, 0, 0, _
                              hwnd, _
                              0, _
                              0, _
                              hBuddy, _
                              Max, _
                              Mini, _
                              Value)

End Function


'----------------------------------------------------------
'■関数名 Destroy
'■用途  CreateUpDownControlで作成したウインドウを破棄する
'----------------------------------------------------------

Public Sub Destroy(hwnd As Long)

'ウインドウを破棄する
 Call DestroyWindow(hwnd)

End Sub

APIの呼び出し

[UpDown.frm]

'SendMessage=>メッセージをウインドウに送る

'<引数>
'hWnd:ウインドウのハンドル
'wMsg:定数(EM_××参照)
'wParam:パラメータ
'lParam:0

'<戻り値>
'余り使わない

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long

Const EM_SETREADONLY = &HCF    '読み込み専用にする


Dim Ret As Long   '作成したコントロールのウインドウハンドル

Private Sub Command1_Click()

'UpDownコントロールを作成
 Ret = UpDown(Form1.hwnd, Text1.hwnd, 50, 0, 25)

 Command1.Enabled = False

End Sub


Private Sub Form_Load()

'テキストボックスをリードオンリーにする
 Call SendMessage(Text1.hwnd, EM_SETREADONLY, -1, 0)

End Sub

Private Sub Form_Unload(Cancel As Integer)

'ウインドウを破棄
  Call Destroy(Ret)

End Sub

ソースコード一式のダウンロード

vbapi_updown.zip 2.50 KB (2,569 バイト)

このサンプルの動作環境について

このサンプルは 「Windows98」及び「Microsoft Visual Basic 5.0 Professional Edition」で確認しております。環境が異なる場合は正常に動作しない場合もございますのでご了承下さい。





関連記事



公開日:2015年03月03日
記事NO:00328