CAD日記

主にAutoCADのことについて書いているけど、近頃は投資系ネタに注力している。自動売買、仮想通貨、PC関係、プログラミングなど。@caddiary

ソフト開発

WM_TIMER

投稿日:

MFCで時間を扱うための基本的なメッセージ。

プログラムの10年以上やってるけど、今まで必要なかった。

必要性を感じて調べたら、けっこうおもしれぇ。

データ変換に要している時間を、ダイアログボックス内に1秒刻みで表示する、

なんていう必要性があったんだけど、以外に簡単にそのやり方がわかった。

CWnd::OnTimer( ) をオーバーライドして、SetTimer( )をコールしておけば、

一定時間ごとに、OnTimerが呼び出される。

OnInitDialog( ) で最初の時間を取得して、SetTimer( )を呼ぶ。

 clock_t m_time = clock();

 SetTimer( 1, 1000, NULL );

OnTimer( ) の中で、現在の時間を取得して、最初の時間との差分を求めて、

分と秒に換算して、スタティックテキストを更新するようにしておけば、完成。

 clock_t now = clock();

 int sec = (now – m_time) / 1000;

 int min = sec / 60;

 sec = sec % 60;

 CString str;

 str.Format( “%02d:%02d”, min, sec );

 GetDlgItem(IDC_STATIC_TIME)->SetWindowText( str );

最大1時間までの所要時間が表示できた。

で、用がなくなったら、KillTimer( ) を呼べばよいらしい。

と言っても、CWndクラスがいなくなれば、自動的に消えてくれるだろうけど。

一定時間ごとに何かをする、というのはよくあることかもな。

いろいろと試してみたいところだ。

-ソフト開発
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

CEditでドラッグ&ドロップ

プログラミングから離れてしばらく経ってしまった。 プロジェクト管理をやっていると、プログラミングをやることができなくなる。 対人間の仕事の合間にプログラムをやることは、おいらには無理だった。 プログラ …

扱えるテキストファイルの最大行数は1億行

扱えるテキストファイルの行数の限界が1億行なのが秀丸エディター。その他⇒動作環境⇒環境にて、編集可能な最大行数が10万行~1億行で設定できる(32bitの場合は1000万行まで)。1億行のテキストファ …

PDFiumはPDFからテキスト抽出するのもちょー簡単

PDFiumを語るのに日本語はいらない。プログラマーはプログラム言語で語る。PDFiumの処理は、tryとfinallyのところだけを見てくれればよい。たったこれだけでPDFからテキストを抽出できるの …

zipcopy Ver1.04リリース

zipcopyをリビジョンアップして、Ver1.04とした。 Ver1.02からなので2回リビジョンアップしている。詳細は以下の通り。 Ver1.03 2019/9/26 ・ファイル削除時の例外エラー …

no image

TEMPフォルダ書き込みエラーが頻発したのはなぜだろう

「環境変数TEMPトラブルについて振り返る」という記事に書いた出来事は1か月ほど前に起きたことでありWindows Serverでもあったから、レアな事象としてとらえていたが、一昨日の金曜日に起きたこ …