读书人

这段sdk双缓冲有什么有关问题

发布时间: 2012-02-11 09:51:34 作者: rapoo

这段sdk双缓冲有什么问题
int i;
COLORREF rgb;
RECT clientRect;
HDC memdc;
HBITMAP bmp;
HBITMAP oldbmp;
int clientWidth;
int clientHeight;

GetClientRect(main_window_hwnd, &clientRect);
rgb = RGB(255,0,255);
clientWidth = clientRect.right - clientRect.left;
clientHeight = clientRect.bottom - clientRect.top;

// initialize memory DC
if (NULL == (memdc = CreateCompatibleDC(hdc)))
{
return 0;
}

bmp = CreateCompatibleBitmap(hdc, clientWidth, clientHeight);
//SetBkMode(memdc, TRANSPARENT);
oldbmp = SelectObject(memdc, &bmp);
FillRect(memdc, &clientRect, (HBRUSH) (COLOR_WINDOW+1));

//Circle_MPA(memdc, 200, 100, 50, rgb);

for (i = 50; i <300; i++)
{
SetPixel(memdc, i, 70, rgb);
}

BitBlt(hdc, 0, 0,
clientWidth, clientHeight,
memdc, 0, 0, SRCCOPY);
SelectObject(memdc, &oldbmp);
DeleteDC(memdc);
/////////////////////////////
图形显示不出来

[解决办法]
int i;
COLORREF rgb;
RECT clientRect;
HDC memdc;
HBITMAP bmp;
HBITMAP oldbmp;
int clientWidth;
int clientHeight;

GetClientRect(main_window_hwnd, &clientRect);
rgb = RGB(255,0,255);
clientWidth = clientRect.right - clientRect.left;
clientHeight = clientRect.bottom - clientRect.top;

// initialize memory DC
if (NULL == (memdc = CreateCompatibleDC(hdc)))
{
return 0;
}

bmp = CreateCompatibleBitmap(hdc, clientWidth, clientHeight);
//SetBkMode(memdc, TRANSPARENT);
oldbmp = (HBITMAP)SelectObject(memdc, bmp);
FillRect(memdc, &clientRect, (HBRUSH) (COLOR_WINDOW+1));

//Circle_MPA(memdc, 200, 100, 50, rgb);

for (i = 50; i <300; i++)
{
SetPixel(memdc, i, 70, rgb);
}

BitBlt(hdc, 0, 0,
clientWidth, clientHeight,
memdc, 0, 0, SRCCOPY);
SelectObject(memdc, oldbmp);
DeleteDC(memdc);

读书人网 >C语言

热点推荐