Не получается включить double buffer в gdi

Начинающий
Статус
Оффлайн
Регистрация
30 Сен 2017
Сообщения
48
Реакции[?]
5
Поинты[?]
0
как включить двойную буферизацию в GDI?
проблема в том что окно с контрой моргает... не пойму где сделал ошибку

Код:
#include "stdafx.h"
#include <iostream>
#include <Windows.h>


#define Window "Counter-Strike: Global Offensive"

int main()
{
    
    HWND hwndDesktop = FindWindow(0, Window);     //Find WindowNames Window
    auto desktop = GetDC(hwndDesktop);

    
    SetBkMode(desktop, TRANSPARENT);

    while (1)
    {
    
        RECT REC;
        GetWindowRect(hwndDesktop, &REC);

        int winWidth = REC.right - REC.left;
        int winHeight = REC.bottom - REC.top;


        auto desktop = GetDC(hwndDesktop);
        auto memDc = CreateCompatibleDC(desktop);
        auto bm = CreateCompatibleBitmap(desktop, winWidth, winHeight);
        auto bufBm = (HBITMAP)SelectObject(memDc, bm);


        //Text
        PAINTSTRUCT ps;

        BeginPaint(hwndDesktop, &ps);
        COLORREF GREEN(RGB(0, 255, 0));
        SetTextColor(memDc, GREEN);
        TextOut(memDc, 200, 200, "TEST", 15);
        
        BitBlt(desktop, 0, 0, winWidth, winHeight, memDc, 0, 0, SRCCOPY);
        
        EndPaint(hwndDesktop, &ps);

    
        
        
        ReleaseDC(hwndDesktop, desktop);
        DeleteDC(desktop);
        
        DeleteDC(memDc);
        DeleteObject(bm);
        DeleteObject(bufBm);
        DeleteObject(hwndDesktop);
        
        
        //Redraw
        //InvalidateRect(hwndDesktop, &REC, TRUE);;

        Sleep(1);

    }
    return 0;
}
 
Сверху Снизу