|
スタティックテキストの内容を動的に変更する
スタティックテキストの内容を動的に変更してみましょう。まず、リソースエディタでスタティックテキストを追加します。今回はスタティックテキストとボタン1つを追加しました。
次にスタティックテキストのプロパティを設定します。ここではリソースIDだけ設定します。他はデフォルトのままでOKです。リソースIDがIDC_STATICのままだと変数を追加できませんので、必ず変更する必要があります。

スタティックテキストにはDDXのvalue変数を割り当てることができます。これを使うと簡単に動的に内容を変更できるスタティックテキストを作ることができます。では、DDX変数を追加しましょう。
スタティックテキストを右クリックし、「変数の追加」を選択します。アクセスはprivate、「コントロール変数」をチェックし、カテゴリにvalueを選択します。変数のデータ型は、文字列なのでCStringにします。
変数名はメンバ変数となるのでm_で始まる名前にしましょう。さらにDDXのvalue変数であることがわかるようにm_xvで始まる名前にすると分かりやすくなります。この辺は好みで決めましょう。

スタティックテキストに変数を追加し、さらにボタンにBN_CLICKEDのメッセージハンドラを追加します。(ボタンのイベントハンドラの追加方法は、「ボタンの基本」を見てください。)
ハンドラの内容は次のようにしました。更新ボタンを押すと、現在時刻を取得し、スタティックテキストに設定します。UpdateData(FALSE)を実行して表示を更新します。
// "更新"ボタン押下
void CStaticDlg::OnBnClickedUpdate()
{
CTime cTime = CTime::GetCurrentTime();
m_xvStTime = cTime.Format("%c");
UpdateData(FALSE);
}
|
では、コンパイルして実行してみましょう。更新ボタンを押すと、現在時刻が更新されます。

|