ボタンをクリックした時のイベント
Posted: 2007年11月10日(土) 21:31
はじめまして。よろしくお願い致します。
ボタンを一気に作るプログラムを作ったのですが、個々にイベントを呼び出せません。コールバックで、ウィンドウIDによって分岐させることを思いついたのですが、上手くいきません。
また、コールバックのところは、ためしに次のように書きました。その前に、Const命令で、BC_1からBC_24まで宣言しています。
これで1番目のボタンをクリックしたとき「true」と出てほしいのですが、どのボタンでも「false」と出ます。どの部分が間違っていて、どうすれば解決するのでしょうか?
ボタンを一気に作るプログラムを作ったのですが、個々にイベントを呼び出せません。コールバックで、ウィンドウIDによって分岐させることを思いついたのですが、上手くいきません。
コード: 全て選択
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
また、コールバックのところは、ためしに次のように書きました。その前に、Const命令で、BC_1からBC_24まで宣言しています。
コード: 全て選択
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
これで1番目のボタンをクリックしたとき「true」と出てほしいのですが、どのボタンでも「false」と出ます。どの部分が間違っていて、どうすれば解決するのでしょうか?