• 締切済み

Timerの使用方法

AppWizawdを使用してプログラムを作成していますが, Timerの使用法を説明した本などがありましたら教えてください。 (SetTimerとOnTimerが関係することは分かりましたが,どこに記述するのか,引数はどのようにするのかがよくわかりません)

みんなの回答

  • kazeen
  • ベストアンサー率100% (7/7)
回答No.1

参考にならなかったらすみません。 やはりMSDNがよいかと。。

参考URL:
http://msdn2.microsoft.com/ja-jp/library/49313fdf(VS.80).aspx
ishimasa36
質問者

お礼

回答ありがとうございました。Timerの使用方法が分かりました。

関連するQ&A

  • .NetのTimerについて

    Timerを使用して5秒までに応答電文がこなかったらエラーメッセージを出すプログラムを作成しています。 .Netは初心者なものでTimerの使い方がよくわかりません。 クラスからTimerを動かすことはできないのでしょうか? 作成しているプログラムはFormがいらないので、TimerだけFormにおいて非表示で使おうかなと思っています。 どうしたらよいでしょうか? また、この場合だとTimerではない方がいいですか?

  • MFC Timerについて

    MFCのTimerの利用方法をいろいろ調べたのですが。 理解できずに困っています。 MFCのダイアログベースで作成し、ボタンを押したら Timer(1秒ごと)でエディットボックスに表示させるというものです。 ・ベースのウィンドウにボタンとエディットボックスを作成しました。 ・次に ボタンをダブルクリックし以下のように書きました。 void CtestDlg::OnBnClickedButton() {     int x=0; char buf[10000]; x++; sprintf(buf,"%d",x); (labelの変数名)_edit.SetWindowText(buf); } ・SetTimer(1, 1000, NULL);を用いて ボタンがクリックされたら1秒ごとにxの値をエディットボックスに表示させるようにしたいのですが。 OnTimer(UINT nIDEvent) Close()やKillTimer(1);をもちいらなければならないことはわかったのですが。 作業手順がわかりません。 詳しい 作業手順をおしえてください。 プログラム完成まで 教えていただけるととてもうれしいです。 プログラマーの方よろしくお願いします。

  • SetTimerの行でアサートエラーが出てしまう

    MFCで、実行中 SetTimer(10, 1000, NULL); を記述しているコードでアサートエラーが出てしまいます。 クラスはCWnd継承クラスで作成し、afxwin.hをインクルード、 OnTimer関数を追加したのですが、この関数に飛びません。 MESSAGE_MAPにはON_WM_TIMER()の記述を確認しています。 何がいけないのか教えてください。お願いします。

  • 超初心者の質問です。今、MFCでプログラムを作成しています。問題は、O

    超初心者の質問です。今、MFCでプログラムを作成しています。問題は、OnTimer関数が呼ばれないことです。 Cxxxsocket::test (){ (CMainFrame *)afxGetMainWnd()->SetTimer(1, 100, Null); } CxxxsocketはCsocketのクラスでSetTimerおよびOnTimerは使えません。この関数でSetTimerを呼び出したい。 afxGetMainWnd()はアプリケーションのアクティブなメイン ウィンドウへのポインタをさしており、恐らくCFrameWndのCMainFrame もしくは、CWinAPPのCxxxAppのポインタをさしていると思います。CFrameWndの場合、OnTimerが定義されているので、SetTimerのイベントは本OnTimerにて処理されると考えていたのですが、全くOnTimerがCallされません。 CMainFrameで利用しているOnTimerを使いたいのですが、SetTimerの呼び出し方法に問題あるのでしょうか?

  • TimerProc コールバック関数を利用する方法

    タイマを使いたくてメッセージマップでOnTimerを追加しましたが、 CWnd::SetTimerの第3パラメタに何を設定したらよいかわかりません。 lpfnTimer WM_TIMER メッセージを処理するためのアプリケーションが用意した、 TimerProc コールバック関数のアドレスを指定します。 このパラメータが NULL の場合は、WM_TIMER メッセージはアプリケーションの メッセージ キューに置かれ、CWnd オブジェクトによって処理されます。 とあり、NULL指定のサンプルはあるのですが、 「TimerProcコールバック関数のアドレスを指定する法」を試したいのです。 関数のアドレスというのが何をいっているのか理解できないのですが 試しに void CXXXCtrl::method1() { SetTimer(timerID, 10000, &OnTimer); } void CXXXCtrl::OnTimer(UINT nIDEvent) { // 処理 COleControl::OnTimer(nIDEvent); } としたところ error C2276: '&' : 仮想関数のアドレスを取ろうとしました。 のエラーになってしまいます。

  • TIMERについて

    VB6.0 SP5での質問です フォーム一つのみをもつ、 単純なプログラムがあるとします。 (1)フォームにはTimerオブジェクトが貼り付けてあり 1秒ごとに、イベントが起きるようにします。 (2)それと同じ構造のプログラムをもうひとつ作ります。 (1)のフォームから(2)のプログラムを読み出す ボタンを追加します。 EXEファイルを作成します。 (1)の(2)を読み出すボタンを押して(2)を起動した時に、 (1)で動いているTimerは一体どうなるのでしょうか? (2)のEXEが開いているうちも、動きつづけるのでしょうか? 一つのプロジェクトの中に2つのフォームがあった場合 だと、2つ目のフォームを開いていても、 1つめのフォームrのTimerは動いているようでした。 別EXEの場合はどうなるのでしょうか? どなたか至急教えてください。お願いします。

  • Timerを使用しての強制待機

    Timerを使用しての強制待機を教えてください。 例えば、VBでのプログラム上でTimerを用いて 強制的に10秒待機させるには どうすればいいですか? ただし、イベントを介しての時間待機ではなくて 単純にプログラムを待機させる方法を教えてください。   皆様宜しくお願いします。

  • C#のTimerについて

    こんにちは。 C#のプログラミングについてわからないところがありますのでご回答いただければと思います。 私はC#を用いて簡単な計算ゲームを作成しています。 その計算ゲームには対戦相手がおり、対戦相手の正解数はTimerを用いてユーザーに練習問題を解かせた時の解答時間を基に勝手に正解数が増えていくといったシステムにしています。 そこで1つ解決できない問題が浮上しました。 対戦相手の数を4人にして4人バラバラに解答しているような動きにしたいため、Timerを4つ設けそれぞれを動かせるようなプログラムを作成しました。 エラーもなく普通に実行できます。 しかしTimer1とTimer2は正常に動き対戦相手の正解数が増えていくのですが、Timer3とTimer4が全く反応していないのか、動かず、対戦相手の正解数が増えません。 プログラムの内容はTimer1~Timer4も対応する変数が違うこと以外一緒です。 原因は何であるかわかる方教えてください! C#ではTimerの使用数が2つまでとなっている?ってことなのでしょうか? スレッドを用いる方法もあると思いますが、Timerを4つ並べてそれぞれを動作させる方法があるのでしたら是非教えてください。 最後になりましたが、わかりにくい文章で本当に申し訳ありません。 よろしくお願いします。

  • Timerイベントについて

    同一フォーム上にTimer(Interval=1000)とCommandButtonを貼り付けCommandButtonをクリックするとMsgboxを表示するプログラムを作成しましたが、Msgboxを表示している間Timerイベントは動いていないようで、Msgboxを閉じると動き出すようようです。 これは仕様なのでしょうか。回避策または代替プログラムはあるでしょうか? よろしくお願いします。

  • SetTimer関数について。

    プログラム初心者です。質問させてください! 現在私はWin32APIを用いて、簡単なプログラムを作成しています。 そこで例えばイベントAが起きた10秒後にあるアクション(1)をさせたくて、 WM_イベントAの時: SetTimer(hWnd,ID_MYTIMER1, 10000, NULL); というようにプログラムを書きました。 そのSetTimer関数が実行されることより、 WM_TIMER:イベントが発生するので、WM_TIMER:イベントのところにあるアクション(1)をさせるプログラムを書きました。 しかし、イベントAが起きた100秒後には、あるアクション(1)とは違うあるアクション(2)をさせたいのですが、 この場合、WM_イベントAが起きたときに、 SetTimer(hWnd,ID_MYTIMER1, 10000, NULL); SetTimer(hWnd,ID_MYTIMER2, 100000, NULL); のようにプログラムをかいてしまうと、 二つともWM_TIMERイベントがおこるので、 あるアクション(1)も(2)も100秒後には実行されてしまいます。 100秒後にはアクション(1)はおこらず、アクション(2)だけおこる。 10秒後にはアクション(2)はおこらず、アクション(1)だけおこる。 このようにするには、どのようにすればいいのでしょうか? アドバイスよろしくお願いいたします。

専門家に質問してみよう