CreateWindowEx を使って Control の作成を行う (CreateWindowEx)
user32.dll の CreateWindowEx を用いて、Control の作成を行います。
サンプルのダウンロード
■サンプルの説明

プログラムが開始すると、画面の左上の方に EditControl を動的に生成します。
■コード
F0002_CreateWindowEx.vb
Imports System.Runtime.InteropServices ''' <summary> ''' CreateWindowEx(user32.dll) ''' </summary> Partial Public Class F0002_CreateWindowEx ''' <summary> ''' CreateWindowExの宣言 ''' </summary> <DllImport("user32.dll", CharSet:=CharSet.Auto)> _ Private Shared Function CreateWindowEx( _ 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 IntPtr, _ ByVal hMenu As Integer, _ ByVal hInstance As Integer, _ ByVal lpParam As Integer) _ As Integer End Function ''' <summary> ''' DestroyWindow(ウィンドウの破棄)の宣言 ''' </summary> <DllImport("user32.dll", CharSet:=CharSet.Auto)> _ Private Shared Function DestroyWindow(ByVal hWnd As Integer) As Integer End Function 'エディットコントロールのハンドル Private hEditControl As Integer 'ウィンドウのスタイルの定数 Private Const WS_CHILD As Integer = &H40000000 '親コントロールを持つコントロール Private Const WS_VISIBLE As Integer = &H10000000 '可視 Private Const WS_BORDER As Integer = &H800000 '枠線を付ける Private Const WS_HSCROLL As Integer = &H100000 '水平スクロールバー Private Const WS_VSCROLL As Integer = &H200000 '垂直スクロールバー Private Const ES_MULTILINE As Integer = &H4& 'マルチライン ''' <summary> ''' ロード時のイベント ''' </summary> Private Sub F0002_CreateWindowEx_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Me.Text = "F0002_CreateWindowEx" 'スクロールバーがあり、自画面に属す複数行入力可能な EditControl を作成する Dim intStyle As Integer = WS_CHILD Or _ WS_VISIBLE Or _ WS_BORDER Or _ WS_HSCROLL Or _ WS_VSCROLL Or _ ES_MULTILINE hEditControl = CreateWindowEx(0, _ "EDIT", _ "", _ WS_CHILD Or WS_VISIBLE Or WS_BORDER Or WS_HSCROLL Or WS_VSCROLL Or ES_MULTILINE, _ 10, _ 10, _ 200, _ 200, _ Me.Handle, _ 0, _ 0, _ 0) End Sub ''' <summary> ''' ウィンドウハンドルを破棄する ''' </summary> Private Sub F0002_CreateWindowEx_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed DestroyWindow(Me.hEditControl) End Sub End Class