小白最近刚刚入门VS2010,先贴代码吧:
case WM_PAINT: {
// hdc = BeginPaint(hWnd, &ps);
hdc = GetDC(hWnd);
HPEN pen = CreatePen(PS_SOLID, 5, RGB(255, 0, 0));
HPEN oldPen = (HPEN)SelectObject(hdc, pen);
MoveToEx(hdc, 100, 100, NULL);
LineTo(hdc, 400, 300);
SelectObject(hdc, oldPen);
DeleteObject(pen);
HBRUSH redBrush = CreateSolidBrush(RGB(255, 255, 0));
HBRUSH oldBrush = (HBRUSH)SelectObject(hdc, redBrush);
Rectangle(hdc, 100, 100, 400, 300);
SelectObject(hdc, oldBrush);
DeleteObject(redBrush);
ReleaseDC(hWnd, hdc);
// EndPaint(hWnd, &ps);
return 0;
}
如上代码是在WndProc函数里面的,我在使用BeginPaint和EndPaint来完成画图的时候发现它一直显示的是一个方块,这很正常,然而用GetDC以及ReleaseDC时候会发生快速的闪烁,请问这两种方法有什么区别吗?