アップダウンコントロールを作成する
アップダウンコントロールを作成するサンプルです。
サンプルの実行画面

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