これで始まる実験的なプロジェクトに戻ってきました: POINT型の 10000 要素の配列があります。それらは、ウィンドウ ( SetPixel() )に描画される x 座標と y 座標を持つピクセルであると想定されています。DC を作成し、配列から各 POINT を取得して画面に描画する単純な関数を作成しました。
void draw_points() {
HDC hdc = GetDC(hWnd);
for (int i = 0; i < 10000; i++) {
SetPixel(hdc, points[i].x, points[i].y, RGB(0, 0, 0));
}
ReleaseDC(hWnd, hdc);
}
さて、この関数をWinMain()関数のメイン ループ内に配置しました。できます。画面に点が描かれているのがわかります。問題は、ポイントが表示されている間は他に何もできないことです。そのため、Java のような非同期関数が必要であることがわかりました。これは、 draw_points()関数の実行中に配列からポイントを追加、削除、変更できるようにしたいためです。
その結果は必要ありません。他の関数でやりたいことをしている間、別のスレッドで実行したいだけです。それで、私の質問: Windows API はこれに対して何を提供してくれますか? それを行う通常の方法はどれですか?外部ライブラリが必要ですか? どうやって始めたらいいのかわからない。私が何を望んでいるのか理解していただければ幸いです。ありがとう!