WndProcのタイマープロシージャー機能に関する質問があります。 Timerによって呼び出された後にDisplay_functionがまだ終了していない場合、次のTM_TIMER関数が呼び出されてもDisplay_functionが実行されているとどうなりますか?WinApi WndProcのタイマープロシージャーの問題
LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
static HANDLE hTimer;
switch (iMessage)
{
case WM_COMMAND:
switch (LOWORD(wParam))
{
case 0:
hTimer = (HANDLE)SetTimer(hWnd, 1, 10, NULL); //10ms
SendMessage(hWnd, WM_TIMER, 1, 0);
break;
....
case WM_TIMER:
switch (wParam)
{
case 1:
Display_function(hWnd);
break;
}
誰も[SetTimer](https://msdn.microsoft.com/en-us/library/windows/desktop/ms644906.aspx)を間違った方法で使用しているようです。 * nIDEvent *パラメーターは、理由のためにポインター・サイズです。一意のIDを持つポインタを設定する安全な方法は、(ローカル)変数のアドレスを渡すことです。そうすれば、IDは他のタイマーIDと決して衝突しません。 – IInspectable