CDC *m_pDC;
COLORREF ColorValue=RGB(255,255,255);
CRect rect=CRect(50,50,200,200);
CBrush newBrush;
CBrush *oldBrush;
newBrush.CreateSolidBrush(ColorValue);
oldBrush=m_pDC->SelectObject(&newBrush);
m_pDC->Rectangle(rect);
m_pDC->DrawEdge(rect,EDGE_SUNKEN,BF_RECT);
m_pDC->SelectObject(oldBrush);
调试结果: oldBrush=m_pDC->SelectObject(&newBrush);总是出错 句柄为NULL
CDC *m_pDC;,这个m_pDC只指向哪个DC的?你这么写是是声明一个CDC的对象而已,实例化呢?
少这一句
m_pDC = CreateCompatibleDC( );
请参考
HDC _hDeviceDCmask;
HDC _memDCmask;
HBITMAP _memBMPmask;
int cardX = _cardSize.cx;
int cardY = _cardSize.cy;
_hDeviceDCmask = ::GetDC(NULL);
_memBMPmask = CreateCompatibleBitmap(_hDeviceDCmask, cardX, cardY);
_memDCmask = CreateCompatibleDC(_hDeviceDCmask);
_memDCmask.SelectObject( _memBMPmask);