|
モーダルダイアログでアイドル処理を行う |
|
afx_msg LRESULT OnKickIdle(WPARAM, LPARAM); // ← 追加 |
|
#include <mmsystem.h> #include <afxpriv.h> // ← 追加 #pragma comment(lib, "winmm.lib") BEGIN_MESSAGE_MAP(CMyDlg, CDialog) ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_MESSAGE(WM_KICKIDLE, OnKickIdle) // ← 追加 //}}AFX_MSG_MAP END_MESSAGE_MAP() LRESULT CMyDlg::OnKickIdle(WPARAM wParam, LPARAM lParam) { // アイドリング処理 static DWORD dwNext = ::timeGetTime() + 10; DWORD dwNow = ::timeGetTime(); if (dwNow > dwNext){ dwNext = dwNow + 10; // ここで 10ms 毎に実行するプログラムを記述する } else { ::Sleep(1); } return TRUE; } |