-
Автор темы
- #1
как включить двойную буферизацию в 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;
}