void CMainFrame::OnJuxing() 
{
// TODO: Add your command handler code here
AfxMessageBox("Hua JuXing");
CDC *pDC = GetDC();
pDC->MoveTo(100,100);
pDC->LineTo(100,200);
pDC->LineTo(120,200);
pDC->LineTo(120,100);
pDC->LineTo(100,100);}上诉菜单事件void CMainFrame::OnJuxing() 中,最后不用delete pDC;处理吧?

解决方案 »

  1.   

    不用ReleaseDC(pDC);会有什莫后果吗?
      

  2.   

    MSDN:
    For each call to GetDC, you must have a subsequent call to ReleaseDC. 
      

  3.   

    我在单文档的客户区显示一幅BMP图片,然后点下菜单按钮后,在图像上面画一个巨型线框,但是,当该
    屏幕被覆盖后,重新显示的时候,那个巨型线框就没有了,我想问一下,画这个巨型线框的处理必须放到
    OnDraw函数中吗?有没有其他方法?
      

  4.   

    不调用的话,每运行一次,就GDI资源泄漏一次,达到一定次数以后,再次进入该函数中GetDC()就返回NULL了,你的程序中又没有什么判断语句,这样的话你后面的调用就错了,出现异常对话框,程序崩溃,那不多就这样
      

  5.   

    一般绘图操作是放到OnDraw函数中,或者放到其它函数中,你在OnDraw中调用。总之是绘图的部分最好是放到OnDraw中去做。否则一旦刷新,你绘制的图形就被刷掉了
      

  6.   


    那就是菜单按钮的事件处理部分,同时也要放到OnDraw中,就没有别的办法了?