人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VisualC++.netにおいて、MFCでアプリケーションを作っています。
MFCにおいて、アプリケーション内部でダイアログボックスの中で定期的に関数を実行したいのです。
がタイマーの使い方がよくわかりません。
できればダイアログボックスのクラスだけで完結したいのですが、そういった方法が分かる方がいましたら、教えて頂けるとありがたいです。

●質問者: sackbut
●カテゴリ:コンピュータ
✍キーワード:.NET C++ mfc アプリケーション クラス
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● cx20
●25ポイント

http://ph02.hp.infoseek.co.jp/c_lecture/c_onTimer.htm

URL は VC++6.0 の MFC のサンプルですが、

VC++.net でも MFC ベースであれば、ほとんど違いは無いはずです。

<タイマーの使い方>

1. CxxxDlg::OnInitDialog() に SetTimer() を追加する。

2. CxxxDlg::OnTimer() を実装する(WM_TIMER のハンドラ関数です。)

3. タイマーを停止したいところに KillTimer() を記述する。

http://www.hi-ho.ne.jp/hawk/mfc0401.html

ここにもタイマーのサンプルが載っています。

◎質問者からの返答

う〜ん、そもそもOnInitDialog()が存在しません。

一応コンストラクタに入れてやってみましたが、コンパイルはできたのですが、エラーが出ました。


2 ● cx20
●25ポイント

http://www.microsoft.com/japan/msdn/library/ja/vclib/html/_mfc_C...

CDialog::OnInitDialog

先ほど、VC++.net で確認してみました。

VC++.net での OnInitDialog と OnTimer の追加方法です。

<CxxxDlg::OnInitDialog() の追加方法>

1. [表示] - [クラス ビュー] を選択します。

2. クラス ビューより CxxxDlg を選択します。

3. [表示] - [プロパティ ウィンドウ] を選択します。

4. 「プロパティ ウィンドウ」の [オーバーライド] ボタンをクリックします。

→ OnInitDialog の項目が表示されると思います。

5. OnInitDialog の項目で「<追加> OnInitDialog」を選択します。

→ CxxxDlg::OnInitDialog() が実装されます。

<CxxxDlg::OnTimer() の追加方法>

1. [表示] - [クラス ビュー] を選択します。

2. クラス ビューより CxxxDlg を選択します。

3. [表示] - [プロパティ ウィンドウ] を選択します。

4. 「プロパティ ウィンドウ」の [メッセージ] ボタンをクリックします。

→ WM_TIMER の項目が表示されると思います。

5. WM_TIMER の項目で「<追加> OnTimer」を選択します。

→ CxxxDlg::OnTimer() が実装されます。

となります。

VC++.net も VC++6.0 も対してやり方は違わないだろうと思っていたら、

結構違っていました。

◎質問者からの返答

すばらしいです!

成功しました。

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ