我要用自己的画笔画东西 具体代码如下,请各位前辈帮忙看看,我是新手,不知写的对不对,谢谢!!
        
         CDC dc;
        dc.Attach((HDC)m_HDC);//绑定HDC对象,预备画图
CPen MyPen;
CPen* pOldPen;

dc.SetBkMode(TRANSPARENT);//设置背景颜色为透明        CFont f,*POldFont;
            
        f.CreateFont(11,0,0,0,FW_MEDIUM,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
                  CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_SWISS,_T("宋体"));
POldFont=dc.SelectObject(&f);
            

        MyPen.CreatePen(PS_SOLID,0,RGB(0,0,255));//选择画笔的颜色
        pOldPen = dc.SelectObject(&MyPen);
      
        dc.SetTextColor(RGB(0,0,255));
         .
         .
 .  画图过程略。
          .
         .
         .
     

    dc.SelectObject(POldFont);
    dc.SelectObject(pOldPen);
    dc.Detach();

解决方案 »

  1.   

    注意一下你的m_HDC有没有获得实际的设备环境。
      

  2.   

    测试过,目前没有发现问题,但以前我是这么写的:        。画完图后
             MyPen.DeleteObject();
    pOldPen->DeleteObject();
    f->DeleteObject();
    POldFont->DeleteObject();
            dc.Detach();   测试时,系统偶尔会弹出对话框,内容是:  对不起,系统在绘制某种图形时出错......
       不知是为什么???
      

  3.   

    要先将POldFont、pOldPen选回DC,才能删除MyPen和f对象,此外不能删除POldFont、pOldPen对象。
      

  4.   

    同楼上:不能删除 pOldPen 对象
      

  5.   


       。画完图后 
            MyPen.DeleteObject(); 
    pOldPen->DeleteObject(); 
    f->DeleteObject(); 
    POldFont->DeleteObject(); 
            dc.Detach();   测试时,系统偶尔会弹出对话框,内容是:  对不起,系统在绘制过程中出现了某种错误,您最好关闭
                                               重新启动本软件。。
       
      如果按我写的这样,删除了POldFont、pOldPen对象,那会出现上面的对话框错误么???