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ランキング
-
プログラムでの数字につく”f”の...
-
C言語の型による処理速度の違い
-
C言語を実行すると-infが出てき...
-
doubleは常に%lfとするべきなのか
-
プログラミングについての質問
-
関数におけるif文とreturn文に...
-
float?数字の後にLがつくもの
-
doubleの変数にintとintの割り...
-
c言語のコンパイルエラー canno...
-
浮動小数点数が表示されないん...
-
はさみうち法のプログラム(C言...
-
方程式を2分法を用いて解くプロ...
-
C 開放してるのにエラー(doubl...
-
float型とdouble型の変数の違い...
-
C言語
-
c++,visual studioで積分のプロ...
-
C言語のpow関数の不具合
-
DWORDの警告
-
至急です! マクロ定義で #defi...
-
2分法で方程式の複数の解を自...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
float型とdouble型の変数の違い...
-
doubleの変数にintとintの割り...
-
C言語を実行すると-infが出てき...
-
C 開放してるのにエラー(doubl...
-
至急です! マクロ定義で #defi...
-
c言語で、繰り返し文の中で、0....
-
関数におけるif文とreturn文に...
-
C言語 関数プロトタイプ宣言の...
-
C言語初心者 構造体 課題について
-
C言語の型による処理速度の違い
-
Cで3乗根を求める方法
-
C言語で-23乗を取り扱うには
-
2分法で方程式の複数の解を自...
-
doubleは常に%lfとするべきなのか
-
c言語のコンパイルエラー canno...
-
C言語で直角三角形の斜辺を求め...
-
C言語のプログラムで#include<m...
-
int とdoubleの比較
-
C++で外積
おすすめ情報