X = 0
Y = 0
For i = 1 to 24
hCommandButton = CreateWindowEx(NULL,"BUTTON",Str$(i),WS_CHILD or WS_VISIBLE,X, Y, 40, 40,hMainWnd, "BC_"+Str$(i),GetModuleHandle(0),NULL)
X = X + 40
If i/6 = Int(i/6) Then
Y = Y + 40
X = 0
End If
Next
Function MainWndProc(hWnd As HWND,wMsg As DWord,wParam As DWord,lParam As DWord) As Long
Select Case wMsg
Case WM_COMMAND
Select Case lParam
Case hCommandButton
Select Case LOWORD(wParam)
Case BC_1
MessageBox(0,"true","test",MB_OK)
Case Else
MessageBox(0,"false","test",MB_OK)
End Select
End Select
Case WM_DESTROY
PostQuitMessage(0)
Case WM_CLOSE
DestroyWindow(hMainWnd)
For i = 1 to 24
DestroyWindow(hCommandButton)
Next
Case Else
MainWndProc = DefWindowProc(hWnd, wMsg, wParam, lParam)
Exit Function
End Select
MainWndProc = 0
End Function
'-----------------------------------------------------------------------------
' イベント プロシージャ
'-----------------------------------------------------------------------------
' このファイルには、ウィンドウ [MainWnd] に関するイベントをコーディングします。
' ウィンドウ ハンドル: hMainWnd
' TODO: この位置にグローバルな変数、構造体、定数、関数を定義します。
Dim hCommandButton[23] As HWND
Const BC_BASE=2000
Const BC_1=BC_BASE+0'以下省略。
'-----------------------------------------------------------------------------
' ウィンドウメッセージを処理するためのコールバック関数
Function MainWndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord
Dim i As Long,buf[50] As Byte
Select Case dwMsg
Case WM_COMMAND
Select Case LOWORD(wParam)
Case BC_1
Select Case HIWORD(wParam)
Case BN_CLICKED
MessageBox(0,"true","test",MB_OK)
End Select
Case Else
Select Case HIWORD(wParam)
Case BN_CLICKED
wsprintf(buf,"false. no:%d",LOWORD(wParam)-BC_BASE+1)
MessageBox(0,buf,"test",MB_OK)
End Select
End Select
Case Else
MainWndProc=EventCall_MainWnd(hWnd,dwMsg,wParam,lParam)
Exit Function
End Select
MainWndProc = 0
End Function
'-----------------------------------------------------------------------------
' ここから下は、イベントプロシージャを記述するための領域になります。
Sub MainWnd_Destroy()
Dim i As Long
For i = 0 to 23
DestroyWindow(hCommandButton)
Next
TestB_DestroyObjects()'プロジェクト名によって異なる。変更すること。
PostQuitMessage(0)
End Sub
Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
Dim X=0 As Long,Y=0 As Long,i As Long,buf[40] As Byte
For i=0 to 23
wsprintf(buf,"%d",i+1)
hCommandButton = CreateWindowEx(NULL,"BUTTON",buf,WS_CHILD or WS_VISIBLE,X, Y, 40, 40,hMainWnd,(BC_BASE+i) As HMENU,GetModuleHandle(0),NULL)
X+=40
If i mod 6=5 Then'iを6で割ったときの余りで分岐。
Y+=40
X=0
End If
Next
End Sub