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





API 技術関連のページへ戻る

ホーム PV ランキング