CreateWindowEx

機能
新しいウィンドウを作成する
Declare Function CreateWindowEx Lib "user32.dll"  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, ByVal lpParam As Long) As Long
Declare Function CreateWindowEx Lib "user32.dll"  Alias "CreateWindowExA" _
(ByVal dwExStyle As Integer, ByVal lpClassName As String, ByVal lpWindowName As String, _
ByVal dwStyle As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal nWidth As Integer, _
ByVal nHeight As Integer, ByVal hwndParent As Integer, ByVal hMenu As Integer, _
ByVal hInstance As Integer, ByVal lpParam As Integer) As Integer

HWND CreateWindowEx(
DWORD dwExStyle,
LPCTSTR lpClassName,
LPCTSTR lpWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU hMenu,
HINSTANCE hInstance,
LPVOID lpParam
);
引数
dwExStyle

拡張ウィンドウスタイルを示す定数の組み合わせ
lpClassName
クラス名
lpWindowName
ウィンドウタイトル
(フォームのときキャプション)
dwStyle
ウィンドウスタイルを示す定数の組み合わせ
x
ウィンドウの左上隅のX座標
y
同、Y座標
nWidth
同、幅
nHeight
同、高さ
hWndParent
親ウィンドウのハンドル(親がないとき0)
hMenu
メニューハンドル(0可)
hInstance
モジュールのインスタンスハンドル
lpParam
作成したウィンドウに渡すデータへのポインタ
戻り値
正常終了のとき  作成したウィンドウのハンドル
エラーのとき  0
拡張ウィンドウスタイルの定数

WS_EX_APPWINDOW = &H40000          アイコン化時,タスクバーに表示する
WS_EX_CLIENTEDGE = &H200           クライアント領域が凹形の3D表示
WS_EX_CONTEXTHELP = &H400          キャプションバーにヘルプボタンを付ける
WS_EX_CONtrOLPARENT = &H10000      [Tab]キーでコントロール間を移動可能
WS_EX_DLGMODALFRAME = &H1          二重罫線を持つ
WS_EX_MDICHILD = &H40              MDI子ウインドウを作成
WS_EX_LEFT = &H0                   左そろえのプロパティを持つ
WS_EX_LEFTSCROLLBAR = &H4000       垂直スクロールバーを左側に付ける
WS_EX_LtrREADING = &H0             テキストの表示は左から右へ(デフォルト)
WS_EX_NOPARENTNOTIFY = &H4         WM_PARENTNOTIFYを無効にする
WS_EX_RIGHT = &H1000               右そろえのプロパティを持つ
WS_EX_RIGHTSCROLLBAR = &H0         垂直スクロールバーを右側に付ける(デフォルト)
WS_EX_STATICEDGE = &H20000         枠線が3D表示(通常、入力を受け付けないことを示す)
WS_EX_TOOLWINDOW = &H80            ツールバー型のスタイル
WS_EX_TOPMOST = &H8                常に手前に表示される
WS_EX_WINDOWEDGE = &H100           枠線が凸形の3D表示
WS_EX_ACCEPTFILES = &H10           ファイルのドロップが可能
WS_EX_RTLREADING = &H2000          テキストの表示は右から左へ(アラビア文字など)
WS_EX_trANSPARENT = &H20           透明なウインドウを作成(一時的な用途に使う)
WS_EX_OVERLAPPEDWINDOW = (WS_EX_WINDOWEDGE Or WS_EX_CLIENTEDGE)
WS_EX_PALETTEWINDOW = (WS_EX_WINDOWEDGE Or WS_EX_TOOLWINDOW Or WS_EX_TOPMOST)
ウィンドウスタイルの定数
WS_BORDER = &H800000               フォームの枠線がある
WS_CAPTION = &HC00000              WS_BORDER Or WS_DLGFRAME
WS_CHILD = &H40000000              親ウインドウを持つコントロール(子ウインドウ)を作成する
WS_CHILDWINDOW = (WS_CHILD)        子ウインドウ
WS_CLIPCHILDREN = &H2000000        フォームの更新時にコントロールの再描画を抑制する
WS_CLIPSIBLINGS = &H4000000        コントロールの更新時に他のコントロールの再描画を抑制する
WS_DISABLED = &H8000000            Enabled = False
WS_DLGFRAME = &H400000             リサイズできない枠線を持つ
WS_GROUP = &H20000                 コントロール グループの最初のコントロールである
WS_HSCROLL = &H100000              水平スクロールバーがある
WS_MAXIMIZE = &H1000000            初期状態で最大化する
WS_MAXIMIZEBOX = &H10000           最大化ボタンを持つ
WS_MINIMIZE = &H20000000           初期状態で最小化する
WS_MINIMIZEBOX = &H20000           最小化ボタンを持つ
WS_ICONIC = WS_MINIMIZE            WS_MINIMIZE と同じ
WS_POPUP = &H80000000              ポップアップ型ウインドウ
WS_SYSMENU = &H80000               システムメニューがある
WS_TABSTOP = &H10000               タブストップ可能
WS_THICKFRAME = &H40000            リサイズ可能な枠線を持つ
WS_VISIBLE = &H10000000            Visibleである
WS_VSCROLL = &H200000              垂直スクロールバーがある
WS_OVERLAPPED = &H0                フォーム枠線とキャプションバーがある
WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED Or WS_CAPTION Or WS_SYSMENU Or  _
  WS_THICKFRAME Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX)
                                    標準的なスタイル
WS_POPUPWINDOW = (WS_POPUP Or WS_BORDER Or WS_SYSMENU)
                                    ポップアップ型の標準的なスタイル
WS_SIZEBOX = WS_THICKFRAME         WS_THICKFRAME と同じ
WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW
                                    32ビット版ではこれを使うことが多い
WS_TILED = WS_OVERLAPPED           WS_OVERLAPPED のと同じ
サンプル
ダウンロード(CreateWindowEx.lzh 2.75kB)

Dim hButton As Long
Private Sub Form_Load()
Dim rc As Long

'API関数使う単位はピクセルなので変更する
Me.ScaleMode = vbPixels

hButton = CreateWindowEx(0, "button", "ボタンだよ", WS_CHILD Or BS_PUSHBUTTON Or WS_VISIBLE, _
    (Me.ScaleWidth - 100) \ 2, (Me.ScaleHeight - 100) \ 2, 100, 36, Me.hWnd, 0, 0, 0)
    
End Sub

Private Sub Form_Unload(Cancel As Integer) Call DestroyWindow(hButton) End Sub
,/tr>