当前位置: 代码迷 >> .NET面试 >> 在OnDraw中绘图,为何要使用另一个CDC?该如何解决
  详细解决方案

在OnDraw中绘图,为何要使用另一个CDC?该如何解决

热度:30   发布时间:2016-05-04 21:45:51.0
在OnDraw中绘图,为何要使用另一个CDC?
void CGobangView::OnDraw(CDC* pDC)
{
::CBitmap bitmap;
::CDC BEGIN;

bitmap.LoadBitmapW(IDB_BEGIN);
BEGIN.CreateCompatibleDC(pDC);
BEGIN.SelectObject(bitmap);
pDC->BitBlt(0,0,119,64,&BEGIN,0,0,SRCCOPY);

//pDC->SelectObject(bitmap);
//pDC->BitBlt(0,0,119,64,pDC,0,0,SRCCOPY);//试图这样绘图不成功!已经有一个CDC指针了,为何还需要一个CDC对象?
}

------解决方案--------------------
没有CDC BEGIN
的话,pDC->BitBlt是不可能操作成功的,

只有在CDC BGING 创建对象后,才能用指针来调用对象的成员函数.

我的理解是:
成员是属于对象的,有了对象才能有成员.
而指针只是对象的执行者.