1,221
社区成员
发帖
与我相关
我的任务
分享
void DrawGDI1(HWND hObj, HDC hdcObj)
{
RECT RecObj;
HPEN hDrawPen;
HBRUSH hDrawBrush;
//创建新画笔,新画刷
hDrawPen = ::CreatePen(PS_SOLID, 10, RGB(0, 255, 0));
hDrawBrush = ::CreateSolidBrush(RGB(233, 0, 255));
//将新画刷,新画笔选入设备环境中
hDrawBrush = (HBRUSH)::SelectObject(hdcObj, hDrawBrush);
hDrawPen = (HPEN)::SelectObject(hdcObj, hDrawPen);
::GetClientRect(hObj, &RecObj); //获取窗口客户区大小
//使客户区失效并立即更新窗口
::InvalidateRect(hObj, &RecObj, TRUE);
::UpdateWindow(hObj);
::LineTo(hdcObj, RecObj.right / 2, RecObj.bottom / 2);
::Rectangle(hdcObj, RecObj.right / 2, RecObj.bottom / 2, RecObj.right, RecObj.bottom);
//将老画刷选入设备环境中,删除新画刷(即返回值)
::DeleteObject(SelectObject(hdcObj, hDrawBrush));
::DeleteObject(SelectObject(hdcObj, hDrawPen));
}
请问hDrawBrush被返回值覆写了吗?(覆写为默认画刷),如果覆写了,为什么下面的作图函数显示用的是新画刷?如果没有被覆写,为什么下面SelectObject将hDrawBrush选入设备环境中却是默认画刷(delete之后我在其他按钮中作画时发现用的是默认画刷)