スピードアップ
ピッカーの速度が遅いのの解決策をこうじていました。
ちょうど今下の記事でid:nyaxtさんに突っ込まれてましたが毎回SetPixelすると重いのでビットマップに描画しておいてBitBltする方法を取っています。
hdc = GetDC(hWnd); hdcTest = CreateCompatibleDC(hdc); hbmpTest = CreateCompatibleBitmap(hdc, 256, 256); hbmpTestOld = (HBITMAP)SelectObject(hdcTest, hbmpTest); ReleaseDC(hWnd, hdc); for (int i = 0;i < 256;i++) { for (int j = 0;j < 256;j++) { SetPixel(hdcTest, j, i, RGB(255, j, i)); } } hdc = GetDC(hWnd); BitBlt(hdc, 0, 0, 256, 256, hdcTest, 0, 0, SRCCOPY); ReleaseDC( hWnd, hdc ); SelectObject(hdcTest, hbmpTestOld); DeleteDC(hdcTest); DeleteObject(hbmpTest);
処理部分を抜粋するとこんな感じですね
あとは必要なところでBitBltで呼んでウインドウハンドラにコピーすれば高速でした。