关于CDC在非控件类中的使用

   在非CStatic的派生类中,由于进行图形的绘制的话,我们需要对该类传入一个CDC以便于绘画。这是因为非CStatic等控件类无法自己产生onPaint这类的消息,因此需要借传入的CDC进行回执,然后回执在其他的内存上,最后达到绘图的效果。

           但是,在这里面有一个问题,当我们直接传入CDC的时候,往往会造成一个访问私有成员变量的错误,如下:
void CBaseDlg:: ShowLoading(CDC  desDC/*desDC*/ )
{
       CLoading *pLoading    = CLoading::GetInstance ();
       pLoading->ShowLoading ( desDC);
}
        这个时候,往往会产生编译错误,如下:

    即使是我们将改变量的CDC改为公共变量,也依然不能够编译通过,那么解决方法改如何呢??
方法就是利用指针,而非变量本身。将上述的借口设计修改为:
void CBaseDlg:: ShowLoading(CDC *pDC/*desDC*/ )
           以指针的方式进行调用和绘画,就能够通过。
posted @ 2013-06-27 19:21  爱生活,爱编程  阅读(247)  评论(0编辑  收藏  举报