80.新しいウインドウ(コントロール)を作成する
< 使用用途 >
新しいウインドウを作成する
今回のサンプルソースをダウンロードする方は下記の「ダウンロード」を!
=> ダウンロード ・・・下記のサンプルと同じです。
< 説明 >
API関数の CreateWindowEx を使用します
CreateWindowEx =>新しいウインドウを作成する
<引数>
dwExStyle:常に0
lpClassName:クラス名
lpWindowName:ウインドウのキャプション
dwStyle:定数(WS_××とBS_××参照)
x:ウインドウのx座標
y:ウインドウのy座標
nWidth:ウインドウの幅
nHeight:ウインドウの高さ
hWndParent:親ウインドウのハンドル(親がないとき 0)
hMenu:メニューのハンドル(0にしています )
hInstance:モジュールのインスタンスハンドル(0にしています)
lpParam:常に0
@戻り値@
正常終了のときウインドウのハンドル
< SAMPLE >
’ここでは新しいウインドウ(コントロール)を作成する処理です。
'標準モジュール
Public 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
Public Const WS_CHILD = &H40000000
Public Const WS_VISIBLE = &H10000000
Public Const BS_PUSHBUTTON = &H0&
Public Const BS_AUTOCHECKBOX = &H3
Public Const BS_AUTORADIOBUTTON = &H9
Public Const BS_GROUPBOX = &H7
'ここからはフォーム内の処理です
Private Sub Command1_Click()
Dim Ret As Long
'コマンドボタン作成
Ret = CreateWindowEx(0, "Button", "CommandButton1",
_
WS_CHILD Or WS_VISIBLE Or BS_PUSHBUTTON, _
20, 20, 120, 140, Form1.hWnd, 0, 0, 0)
'チェックボックス作成
Ret = CreateWindowEx(0, "Button", "CheckBox1",
_
WS_CHILD Or WS_VISIBLE Or BS_AUTOCHECKBOX, _
150, 20, 120, 40, Form1.hWnd, 0, 0, 0)
'オプションボタン作成
Ret = CreateWindowEx(0, "Button", "OptionButton1",
_
WS_CHILD Or WS_VISIBLE Or BS_AUTORADIOBUTTON, _
150, 60, 120, 40, Form1.hWnd, 0, 0, 0)
'フレーム作成
Ret = CreateWindowEx(0, "Button", "Frame1", _
WS_CHILD Or WS_VISIBLE Or BS_GROUPBOX, _
150, 100, 120, 60, Form1.hWnd, 0, 0, 0)
End Sub