现在我在写个软件,有一个View中的内容需要自己来画,当然就是在OnDraw中往DC上画了
但是,因为要画的内容需要经过一定时间的整理才能绘制出来。所以,每次OnDraw都进行一次这样的演算使得程序运行效率非常的低
现在的想法是这样的,把要显示的内容先画好,保存起来,OnDraw的时候只管显示画好的数据就行了
但是DC本身就提供足够的绘图功能,别处找不到这样的功能。
所以,怎么样把在一个不显示的DC上绘制图案呢?也就是怎么样得到一个不会被显示出来的DC,在上面画好以后保存成Bitmap,然后OnDraw时就直接显示Bitmap。
这个DC怎么得到??
但是,因为要画的内容需要经过一定时间的整理才能绘制出来。所以,每次OnDraw都进行一次这样的演算使得程序运行效率非常的低
现在的想法是这样的,把要显示的内容先画好,保存起来,OnDraw的时候只管显示画好的数据就行了
但是DC本身就提供足够的绘图功能,别处找不到这样的功能。
所以,怎么样把在一个不显示的DC上绘制图案呢?也就是怎么样得到一个不会被显示出来的DC,在上面画好以后保存成Bitmap,然后OnDraw时就直接显示Bitmap。
这个DC怎么得到??
解决方案 »
- 请教:怎么将CList窗口中的数据,动态更新CView中的曲线
- 第二个子窗口大小不变 SetWindowPos,马上散分。。。
- 求助:关于GDI+ Graphics的疑问
- VC SQL数据库转成ACCESS数据库的问题
- 新手提问
- 窗口类的修改
- 急 谁有能够加入位图的类似于CListCtrl的源码,运行起来就想资源管理器中浏览方式设置为位图的那种?
- 有谁做过simens 4442 memory card的USB驱动
- 远程加载cab,IE提示无法验证发布者,windows已阻止
- 各位大虾,急救:如何取得计算机时钟,精确到毫秒级
- 用findwindow得到窗口名柄後,如保設定窗口為不能移動?即用mouse拖動它也不能移動位置.
- 初学请教:堆和栈的区别
virtual BOOL CreateCompatibleDC( CDC* pDC );
这种兼容型dc是一种内存型的,不会显示
CDC memDC;
CBitmap bitmap, *pOldBitmap;
memDC.CreateCompatibleDC(&dc);
bitmap.CreateCompatibleBitmap(&dc, 300, 300);
pOldBitmap = memDC.selectObject(&bitmap);
// 绘图
然后过一段时间,dc.BitBlt(0, 0, 300, 300, &memDC, 0, 0, SRCCOPY);