ホーム > カテゴリ > Visual Basic >

新しいウインドウ(コントロール)を作成する

新しいウインドウ(コントロール)を作成するサンプルです。

サンプルの実行画面

ソースコード

[CreateWindowEx.frm]

'新しいウインドウ(コントロール)を作成するAPI
 
'<引数>
'dwExStyle:     常に0
'lpClassName:   クラス名
'lpWindowName:  ウインドウのキャプション
'dwStyle:      定数(WS_××とBS_××参照)
'x:             ウインドウのx座標
'y:             ウインドウのy座標
'nWidth:        ウインドウの幅
'nHeight:       ウインドウの高さ
'hWndParent:   親ウインドウのハンドル(親がないとき 0)
'hMenu:        メニューのハンドル(0にしています )
'hInstance:    モジュールのインスタンスハンドル(0にしています)
'lpParam:       常に0

'@戻り値@
'正常終了のときウインドウのハンドル

Private Declare Function CreateWindowEx Lib "USER32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long


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

'<引数>
'hWnd:CreateWindowExで作成したウインドウのハンドル

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

Private Declare Function DestroyWindow Lib "USER32" (ByVal hWnd As Long) As Long

Const WS_CHILD = &H40000000
Const WS_VISIBLE = &H10000000

Const BS_PUSHBUTTON = &H0&          'コマンドボタン
Const BS_AUTOCHECKBOX = &H3         'チェックボックス
Const BS_AUTORADIOBUTTON = &H9      'オプションボタン
Const BS_GROUPBOX = &H7             'フレーム

Dim Ret(3) As Long                  'CreateWindowExで作成したウインドウのハンドル

Private Sub Command1_Click()



'コマンドボタン作成
Ret(0) = CreateWindowEx(0, "Button", "CommandButton1", _
                  WS_CHILD Or WS_VISIBLE Or BS_PUSHBUTTON, _
                  20, 20, 120, 140, Form1.hWnd, 0, 0, 0)

'チェックボックス作成
Ret(1) = CreateWindowEx(0, "Button", "CheckBox1", _
                  WS_CHILD Or WS_VISIBLE Or BS_AUTOCHECKBOX, _
                  150, 20, 120, 40, Form1.hWnd, 0, 0, 0)
                  
'オプションボタン作成
Ret(2) = CreateWindowEx(0, "Button", "OptionButton1", _
                  WS_CHILD Or WS_VISIBLE Or BS_AUTORADIOBUTTON, _
                  150, 60, 120, 40, Form1.hWnd, 0, 0, 0)

'フレーム作成
Ret(3) = CreateWindowEx(0, "Button", "Frame1", _
                  WS_CHILD Or WS_VISIBLE Or BS_GROUPBOX, _
                  150, 100, 120, 60, Form1.hWnd, 0, 0, 0)


End Sub



Private Sub Form_Unload(Cancel As Integer)

'ウインドウを破棄する
For i = 0 To 3
Re = DestroyWindow(Ret(i))
Next

End Sub

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

vbapi_createwindow.zip 1.35 KB (1,385 バイト)

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

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





関連記事



公開日:2015年03月06日
記事NO:00414