Как правильно обновить контент после вызова функции UpdateLayeredWindow?

Пожалуйста, посмотрите на код @Strive Sun из этого ответа. Как правильно обновить контент? Если я хочу добавить рисунок после UpdateLayeredWindow, например:

SolidBrush brush(Color(100, 0, 255, 0)); 
g.FillRectangle(&brush, 10, 10, 100, 100);

Нашел такой вариант:

//int err = GetLastError(); //pause @Strive Sun code
{
    DeleteObject(bmp);
    SolidBrush brush(Color(100, 0, 255, 0));
    g.FillRectangle(&brush, 10, 10, 100, 100);
    softwareBitmap.GetHBITMAP(Color(0, 0, 0, 0), &bmp);
    SelectObject(memdc, bmp);
    UpdateLayeredWindow(hwnd, 0, 0, &szWnd, memdc, &ptSrc, 0, &blend, ULW_ALPHA);
}
 //SelectObject(hdc, original); //continue @Strive Sun code

Каждый раз, когда я что-то рисую (даже маленький пиксель), мне нужно удалить растровое изображение, воссоздать растровое изображение и снова выбрать объект Bitmap. Должно же быть более эффективное решение?


Ответы (0 шт):