终于找到第二个圆绘不出来的原因
BEGIN_MSG_MAP(CODButtonImpl)
CHAIN_MSG_MAP_ALT(COwnerDraw<CODButtonImpl>, 1)
MSG_WM_ERASEBKGND(OnEraseBkGnd)
DEFAULT_REFLECTION_HANDLER()
END_MSG_MAP()
LRESULT OnEraseBkGnd(HDC hDC)
{
CDC dc(hDC); // CDCHandle dc(hDC);
return 1;
}
void DrawItem ( LPDRAWITEMSTRUCT lpdis )
{
RECT rc = lpdis->rcItem;
CDCHandle hdc = lpdis->hDC;
CDC dc(lpdis->hDC);
CPen pen;
pen.CreatePen(0,1,RGB(28,81,128));
HPEN hOldPen = dc.SelectPen(pen);
HBRUSH hOldBrush = dc.SelectStockBrush(WHITE_BRUSH);
dc.Ellipse(&rc);
}
原来是红色的那行,它用CDC来管理hDC,用完后就释放hDC了。改成CDCHandle就好了。
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did45211