バージョンは4.20です。
試しに4.23にバージョンアップしてやってみてもダメでした。
最初は"radio"変数をダイアログの方で宣言していたので、
MainWndで宣言してみたのですが、やっぱりダメです。
ちなみにコードは以下の通りです。
コード: 全て選択
'-----------------------------------------------------------------------------
' イベント プロシージャ
'-----------------------------------------------------------------------------
' このファイルには、ウィンドウ [MainWnd] に関するイベントをコーディングします。
' ウィンドウ ハンドル: hMainWnd
' TODO: この位置にグローバルな変数、構造体、定数、関数を定義します。
Dim hajime=0 As Long'スタート判定
Dim a As Long'正解数
Dim t As Long'For用
Dim u=0 As Long'擬似For用
Dim x[10] As Long'掛けられる数の配列
Dim y[10] As Long'掛ける数の配列
Dim b[10] As Long'正しい答えの配列
Dim z=0 As Double'入力した答えの配列
Dim answer As String'入力した答え_String版
Dim radio As Long'ラジオボタン用
'-----------------------------------------------------------------------------
' ウィンドウメッセージを処理するためのコールバック関数
Function MainWndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord
' TODO: この位置にウィンドウメッセージを処理するためのコードを記述します。
' イベントプロシージャの呼び出しを行います。
MainWndProc=EventCall_MainWnd(hWnd,dwMsg,wParam,lParam)
End Function
'-----------------------------------------------------------------------------
' ここから下は、イベントプロシージャを記述するための領域になります。
Sub MainWnd_Destroy()
DtCalculation22_DestroyObjects()
PostQuitMessage(0)
End Sub
Sub MainWnd_CommandButton1_Click()
DialogBox(hMainWnd,"SubWnd")
EnableWindow(GetDlgItem(hMainWnd,CommandButton1),FALSE)
EnableWindow(GetDlgItem(hMainWnd,CommandButton2),TRUE)
SetDlgItemText(hMainWnd,Static7," ")
u=0
a=0
RANDOMIZE
If radio=2 THEN
SetDlgItemText(hMainWnd,Static2,"次の2桁×2桁の問題を解きなさい。")
For t=1 TO 10
x[t]=10+Int(Rnd()*90)
y[t]=10+Int(Rnd()*90)
b[t]=x[t]*y[t]
NEXT t
SetDlgItemText(hMainWnd,Static4,+Str$(x[1])+"×"+Str$(y[1])+"=")
SetDlgItemText(hMainWnd,Static6," ")
ELSE
If radio=1 THEN
SetDlgItemText(hMainWnd,Static2,"次の2桁×1桁の問題を解きなさい。")
For t=1 TO 10
x[t]=10+Int(Rnd()*90)
y[t]=1+Int(Rnd()*9)
b[t]=x[t]*y[t]
NEXT t
SetDlgItemText(hMainWnd,Static4,+Str$(x[1])+"×"+Str$(y[1])+"=")
SetDlgItemText(hMainWnd,Static6," ")
ELSE
If radio=3 THEN
SetDlgItemText(hMainWnd,Static2,"次の3桁×1桁の問題を解きなさい。")
For t=1 TO 10
x[t]=100+Int(Rnd()*900)
y[t]=1+Int(Rnd()*9)
b[t]=x[t]*y[t]
NEXT t
SetDlgItemText(hMainWnd,Static4,+Str$(x[1])+"×"+Str$(y[1])+"=")
SetDlgItemText(hMainWnd,Static6," ")
ELSE
If radio=4 THEN
SetDlgItemText(hMainWnd,Static2,"次の3桁×2桁の問題を解きなさい。")
For t=1 TO 10
x[t]=100+Int(Rnd()*900)
y[t]=10+Int(Rnd()*90)
b[t]=x[t]*y[t]
NEXT t
SetDlgItemText(hMainWnd,Static4,+Str$(x[1])+"×"+Str$(y[1])+"=")
SetDlgItemText(hMainWnd,Static6," ")
End If
End If
End If
End If
End Sub
Sub MainWnd_CommandButton2_Click()
u=u+1
GetWindowText(GetDlgItem(hMainWnd,EditBox1),answer,100)
z=Val(answer)
If z=x*y THEN
SetDlgItemText(hMainWnd,Static6,"正解!" )
Sleep(100)
a=a+1
ELSE
SetDlgItemText(hMainWnd,Static6,"不正解!正しい答えは"+Str$(b))
Sleep(100)
END If
IF u=10 THEN
EnableWindow(GetDlgItem(hMainWnd,CommandButton2),FALSE)
EnableWindow(GetDlgItem(hMainWnd,CommandButton1),TRUE)
SetDlgItemText(hMainWnd,Static6,"あなたの正解数:"+Str$(a)+"問")
IF a<=3 THEN
SetDlgItemText(hMainWnd,Static7,"もう少し頑張ろう!")
Else
If a=10 THEN
SetDlgItemText(hMainWnd,Static7,"全問正解!君は掛け算の天才だね!")
Else
SetDlgItemText(hMainWnd,Static7,"その調子!次は全問正解を目指そう!")
End If
End If
Else
SetDlgItemText(hMainWnd,Static4,+Str$(x[u+1])+"×"+Str$(y[u+1])+"=")
End If
End Sub
コード: 全て選択
'-----------------------------------------------------------------------------
' イベント プロシージャ
'-----------------------------------------------------------------------------
' このファイルには、ウィンドウ [SubWnd] に関するイベントをコーディングします。
' ウィンドウ ハンドル: hSubWnd
' TODO: この位置にグローバルな変数、構造体、定数、関数を定義します。
'-----------------------------------------------------------------------------
' ウィンドウメッセージを処理するためのコールバック関数
Function SubWndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord
' TODO: この位置にウィンドウメッセージを処理するためのコードを記述します。
SendMessage(GetDlgItem(hSubWnd,RadioButton1),BM_SETCHECK,1,0)
' イベントプロシージャの呼び出しを行います。
SubWndProc=EventCall_SubWnd(hWnd,dwMsg,wParam,lParam)
End Function
'-----------------------------------------------------------------------------
' ここから下は、イベントプロシージャを記述するための領域になります。
Sub SubWnd_CommandButton1_Click()
EndDialog(hSubWnd,1)
End Sub
Sub SubWnd_RadioButton1_Click()
radio=1
End Sub
Sub SubWnd_RadioButton2_Click()
radio=2
End Sub
Sub SubWnd_RadioButton3_Click()
radio=3
End Sub
Sub SubWnd_RadioButton4_Click()
radio=4
End Sub