回答編集履歴

1

マルチメディアタイマーについて言及

2023/10/20 00:25

投稿

int32_t
int32_t

スコア21421

test CHANGED
@@ -2,9 +2,14 @@
2
2
  SetTimer(hWnd, 1, 1, NULL);//タイマースタート
3
3
  ```
4
4
 
5
- 1ミリ秒間隔で `WM_TIMER` が来る想定になっていますが、タイマーの精度はそんなに高くできません。実際には10ミリ秒以上になります。
5
+ 1ミリ秒間隔で `WM_TIMER` が来る想定になっていますが、タイマーの精度はそんなに高くできません。実際には10ミリ秒以上になります。また、10を指定しても`WM_TIMER` が来る間隔が10ミリ秒を超えることがあります。
6
+
6
7
  https://learn.microsoft.com/ja-jp/windows/win32/api/winuser/nf-winuser-settimer
7
8
  > _uElapse_ が`USER_TIMER_MINIMUM`未満 (0x0000000A) の場合、タイムアウトは `USER_TIMER_MINIMUM` に設定されます。
8
9
 
9
10
  タイマー開始時に時刻を保存しておき、`WM_PAINT` 内では現在時刻とタイマー開始時刻の差から現在の透明度を決めるようにしましょう。
10
11
 
12
+ [マルチメディアタイマー](https://learn.microsoft.com/ja-jp/windows/win32/multimedia/about-multimedia-timers)を使うとより高精度にできた記憶がありますが、どちらにしても現在の一般的なディスプレイでは1秒間に1000回も描画できません。一般的には60回が上限です。
13
+
14
+
15
+