プロジェクトエディターで簡単なラーメンタイマーを作ってみつ。
タイマー処理とGDIを使っている。

  • プロジェクト HiraiRamenTimar
コモンコントロールを使用するにチェックを入れる。

次のコントロールを貼り付ける。
  • エディットボックス ID=EditBox1
  • ボタン ID=CommandButton1
  • プログレスバー ID=ProgressBar1

'-----------------------------------------------------------------------------
' イベント プロシージャ
'-----------------------------------------------------------------------------
' このファイルには、ウィンドウ [MainWnd] に関するイベントをコーディングします。
' ウィンドウ ハンドル: hMainWnd

' TODO: この位置にグローバルな変数、構造体、定数、関数を定義します。
Dim g_counter As DWord
Const ID_TIMER01 = 01


Sub TimerIsOut()
Dim hdc As HDC
Dim hbr As HBRUSH, hobr As HBRUSH
Dim hpn As HPEN, hopn As HPEN
hdc = GetDC(hMainWnd)
hbr = GetStockObject(DKGRAY_BRUSH)
hobr = SelectObject(hdc,hbr)
hpn = GetStockObject(WHITE_PEN)
hopn = SelectObject(hdc,hpn)
RoundRect(hdc,0,0,444,333,15,15)
TextOut(hdc,100,50,"時間", 4)
SelectObject(hdc,hopn)
SelectObject(hdc,hobr)
ReleaseDC(hMainWnd, hdc)
End Sub

'-----------------------------------------------------------------------------
' ウィンドウメッセージを処理するためのコールバック関数

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()
HiraiRamenTimar_DestroyObjects()
PostQuitMessage(0)
End Sub

Sub MainWnd_CommandButton1_Click()
Dim sss[555] As Byte
'エデットボックスから数字を獲得
GetWindowText(GetDlgItem(hMainWnd,EditBox1), sss, 555)
g_counter = Val(sss) * 60'秒に変更
SendMessage(GetDlgItem(hMainWnd, ProgressBar1), PBM_SETRANGE32,0, g_counter)
SendMessage(GetDlgItem(hMainWnd, ProgressBar1), PBM_SETPOS,0, 0)
SendMessage(GetDlgItem(hMainWnd, ProgressBar1), PBM_SETSTEP,1, 0)
SetTimer(hMainWnd, ID_TIMER01, 1000,NULL)
End Sub

Sub MainWnd_Timer(TimerID As DWord)
Select Case TimerID
Case ID_TIMER01
g_counter = g_counter-1
SendMessage(GetDlgItem(hMainWnd, ProgressBar1), PBM_STEPIT,0, 0)
If g_counter = 0 Then
'時間切れ
TimerIsOut()
KillTimer(hMainWnd, TimerID)
End If
End Select
End Sub
最終更新:2010年01月29日 02:43