Win32プログラミング講座 〜 Step5. ボタン コントロールを使う 〜


今回は、ボタン コントロールの操作方法を通して、日付と時刻を表示するプログラムを作ってみます。

まずは、RADツールを利用して、下のようなウィンドウをデザインしてみましょう(プロジェクト名を "DateTimeCheck" とします)。

RADツール左上のコントロール一覧から挿入したいコントロールを選択し、ウィンドウ内の任意の場所をクリックする作業を繰り返します。ウィンドウ プロパティで、「サイズ変更枠」を「細枠」に変更し、最大化ボタン、最小化ボタンのチェックを解除しておくと良いでしょう。

これから次の2点をコーディングしていきます。
・日付表示プログラム
・時刻表示プログラム

日付表示プログラム

RAD画面を開いた状態で、先ほど挿入した「今日は何日?」のボタンをダブルクリックします。すると、"Sub MainWnd_CommandButton1_Click()" というプロシージャが選択された状態でコーディング画面が表示されるので、そのプロシージャの内部に日付表示のプログラムを記述していきます。

Sub MainWnd_CommandButton1_Click()
    Dim buffer As String

    buffer=String$(255,Chr$(0))
    GetDateFormat(LOCALE_USER_DEFAULT, DATE_LONGDATE, ByVal 0, 0, buffer, 255)

    MessageBox(hMainWnd,buffer,"今日の日付",MB_OK)
End Sub

時刻表示プログラム

同じように、RAD画面で「今何時?」のボタンをダブルクリックし、表示されたプロシージャ内に以下のコードを記述します。

Sub MainWnd_CommandButton2_Click()
    Dim buffer As String

    buffer=String$(255,Chr$(0))
    GetTimeFormat(LOCALE_USER_DEFAULT, LOCALE_NOUSEROVERRIDE, ByVal 0, 0, buffer, 255)

    MessageBox(hMainWnd,buffer,"現在時刻",MB_OK)
End Sub

ここで注目しておきたい関数が2つあります。

・GetDateFormat
・GetTimeFormat

詳細はヘルプファイルを見てもらうとして、上記のコードのようにパラメータを指定すると、GetDateFormat関数では日付文字列が、GetTimeFormat関数では時刻文字列が文字列変数bufferに格納されます。これらの関数を実行する前に、String$関数で文字列領域の確保(ここでは255バイト)を行っているというところもチェックしておきましょう。

"文字列の確保" などという難しそうな言葉がでてしまいましたが、これは「buffer変数の文字数をあらかじめ255文字分(日付や時刻の文字数以上であればいくつでも可)にしておきましょう」というように解釈しておいて下さい。

今回は2つのAPI関数に触れましたが、今後ともより多くのAPI関数を利用することになるでしょう。API関数の記述のしかたはこんなもんだという感じだけでもつかんでいただけたら幸いです。

前へ戻る - 次へ進む
トップへ戻る


©2005 Discoversoft