代码说明吧~function()
{
   CDC *pDC=GetDC();
   pDC->()
   ....
}以上是标准用法
************************************下面是我感觉应该的用法*********************function()
{
   CDC cdc; 
   cdc.()
}原因:CDC是个类,*pDC是个指针,GetDC()返回值为HDC的句柄, 那么*pDC=GetDC()表示什么含义呢?   我觉得既然CDC是个类,那么我声明个名为cdc的对像,可以直接引用的啊。     请指点下我哪里理解错了  

解决方案 »

  1.   

    原则性的错误,GetDC是从一个已经和系统建立联系的窗口上获得DC,只有获得了一个窗口的DC才能向窗口绘制.
    你生成一个CDC 对象 cdc , 它代表哪个窗口?用cdc进行操作是对谁操作?你创建的这个对象和任何窗口都没有关联.
    CDC其实本身就是对 HDC 进行了一个封装,CDC的本质就是HDC
      

  2.   

    一楼正解
    补充一下
    如果直接用
    CDC *pDC=GetDC();
    那么调用的是CWnd::GetDC()
    此函数的定义CDC* GetDC( );
    返回值就是CDC指针