ホーム > カテゴリ > 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


この記事を書いた人

💻 ITスキル・経験
サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。

画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ
プチモンテ代表、アーティスト名:プチモンテ
🎵 音楽制作
BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は叙情詩、叙情的な楽曲が多い。楽曲制作は2023年12月中旬 ~

オリジナル曲を始めました✨

YouTubeで各楽曲を公開しています🌈
https://www.youtube.com/@petitmonte

【男性ボーカル】DA・KA・RA | 新たな明日が風と共に訪れる

【男性、女性ボーカル】時空を超越する先に | 時空と風の交響曲

【女性、男性ボーカル】絆 | 穏やかな心に奏でる旋律