Visual Studio 2005 の C++ で、カウントアップするタイマを作りたいと考えています。
今のところ、サンプルプログラムを参考に現在時刻を表示するものはできました。
これを応用して、0からカウントアップさせるプログラムを作ろうと思ったのですがなかなかできません。
初心者でなかなかイメージがわかず、単純にfor文で1個ずつ数を増やして表示させようと試みたのですが失敗に終わりました。
Windowsアプリケーションでは単純にいかないものですね。悩
何かヒントのようなもので結構ですので、力を貸していただきたいです。
No.2ベストアンサー
- 回答日時:
for文で回している為にほかのメッセージが処理出来ずに表示更新が出来ない…。
という状況の可能性もあるかと思うのですが。
とりあえずは、.Netかどうかによっても違いますのでその点を表明して頂けると回答が絞り込めると思います。
私の場合MFCメインなので、SetTimerを仕掛けてOnTimerで処理するのが基本ですね。(精度が悪いですが…)
高精度を求める場合はマルチメディアタイマとスレッドの併用ですね。
回答ありがとうございます。
はい、始めは単純にfor文で1づつ足していく作業をしていたために、
他の処理ができず表示されませんでした。
しかしローカル変数をうまく使い、1づつカウントされるタイマを
作成できました!ありがとうございます。
No.1
- 回答日時:
現在時間からの差で求めているのでしょうか?
>単純にfor文で1個ずつ数を増やして表示させようと試みたのですが失敗に終わりました
抽象的な表現で、どう失敗したのかわからないのですが…。
VS2005ということで、.NETによる開発ですか?
.NETでの開発なら、
kernel32.dllをインポートして、
QueryPerformanceCounter等を利用すれば、より正確な時間は求められるかと思いますが…。
>Windowsアプリケーションでは単純にいかないものですね。悩
あなたのスキルの問題かと思いますよ。
サンプルとして、C#による処理時間計測プログラムを転載しておきます。これを応用すれば問題ないでしょ。
public static class StopWatch
{
[DllImport("kernel32.dll")]
extern static short QueryPerformanceCounter(ref long x);
[DllImport("kernel32.dll")]
extern static short QueryPerformanceFrequency(ref long x);
private static double strt;
public static double time;
public static void Start()
{
long cnt = 0;
long frq = 0;
QueryPerformanceCounter(ref cnt);
QueryPerformanceFrequency(ref frq);
strt = (double)cnt / (double)frq;
}
public static void Stop()
{
long cnt = 0;
long frq = 0;
QueryPerformanceCounter(ref cnt);
QueryPerformanceFrequency(ref frq);
double c = (double)cnt / (double)frq;
time = (c - strt) * 1000;
}
}
Start()を呼び出して、Stop()を呼び出す。
StopWatchクラスのtimeを参照すれば時間が記録されています。
言葉不足で申し訳ありません。
ご丁寧にサンプルプログラムありがとうございます。
無事解決することができました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- その他(プログラミング・Web制作) Visual StudioでDjangoのプロジェクト配下のappを作成する方法 1 2022/05/01 03:47
- Visual Basic(VBA) visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ 1 2023/02/08 00:18
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- C言語・C++・C# 【C++】IDirect3DSurfaceのディープコピーは可能ですか? 1 2022/07/06 02:47
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- Java 問題作成のWebアプリの作り方を教えてください 1 2022/11/26 22:01
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
2分法で方程式の複数の解を自...
-
プログラムでの数字につく”f”の...
-
c言語で、繰り返し文の中で、0....
-
float型とdouble型の変数の違い...
-
doubleの変数にintとintの割り...
-
C言語で台形公式を使った二重積...
-
C#イベント中の戻り値の設定の...
-
C言語を実行すると-infが出てき...
-
浮動小数点の定数
-
たくさんの数の平均を求める方...
-
C言語初心者 構造体 課題について
-
C言語 関数プロトタイプ宣言の...
-
C言語について(三角形の面積・d...
-
log(0)と-1.#INF00Pの関係
-
C言語ついての質問です。 関数...
-
c言語の構造体エラーについて
-
C#、太らせた多角形を塗りつぶ...
-
-1.#IND00と出てしまうのですが...
-
テイラー展開(C言語)
-
C++で外積
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
C言語を実行すると-infが出てき...
-
float型とdouble型の変数の違い...
-
doubleの変数にintとintの割り...
-
c言語で、繰り返し文の中で、0....
-
C言語 関数プロトタイプ宣言の...
-
関数におけるif文とreturn文に...
-
C 開放してるのにエラー(doubl...
-
C言語の型による処理速度の違い
-
至急です! マクロ定義で #defi...
-
doubleは常に%lfとするべきなのか
-
Cで3乗根を求める方法
-
-1.#IND00と出てしまうのですが...
-
C言語で-23乗を取り扱うには
-
C++で外積
-
2次方程式の解を求めるプログ...
-
方程式を2分法を用いて解くプロ...
-
ニュートン法
-
c言語のコンパイルエラー canno...
-
difftime()について
おすすめ情報