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

VC2015のプロジェクトを久しぶりにビルドしたらエラーになったけど。。

エラーはこんな感じ。

no image

テキストファイルの最大行数

【2018/12/24追記】以下の記事も参考になるかな。 扱えるテキストファイルの最大行数は1億行 バカでかいテキストファイルを作る必要があって、結果約2GBにもなった。 CADから出力するんだけど、 …

PDFアレコレをVer3としてリニューアルしたのは、GUI操作をちゃんできるようにしたかったからだ

PDFアレコレをVer3としてリニューアル。 Ver3.00 2020/5/24 ・起動画面をプレビュー画面(PDFの描画画面)に変更して、起動画面からすべての操作(画像変換・ページ編集・テキスト抽出 …

zipcopy Ver1.01リリース

以下でアップしていたzipcopyについて、ちょいと手直ししてVer1.01としてリリースする。 zipcopy~圧縮してコピー~ができたのでアップしておく zipcopyのダウンロードはここをクリッ …

PDFアレコレでPDF暗号化(セキュリティ設定)の第一歩を踏み出した

PDFアレコレをバージョンアップ。約2か月ぶり。 Ver3.01 2020/7/26 ・セキュリティ設定を変更できるようにした。読取パスワード、編集パスワード、編集許可の各種項目が設定可能。  暗号化 …