我现在是利用双缓冲来解决试图闪烁的问题!
我现在是在内存中创建一个位图来做的!我在位图上用textout输出了文字,但我感觉好像是由于位图本身就是一个单元一个单元的,所以显示出来的字有锯齿状,不太连贯,清楚。
1。如果还用位图,文字显示应该怎么解决!
2。利用双缓冲,如果我不加载位图,还可以加在什么到内存中,在上面写字!
请大家详细给与指导!
谢谢!
我现在是在内存中创建一个位图来做的!我在位图上用textout输出了文字,但我感觉好像是由于位图本身就是一个单元一个单元的,所以显示出来的字有锯齿状,不太连贯,清楚。
1。如果还用位图,文字显示应该怎么解决!
2。利用双缓冲,如果我不加载位图,还可以加在什么到内存中,在上面写字!
请大家详细给与指导!
谢谢!
解决方案 »
- 【求助】请问怎样解析网页呢?
- 问用winsock发表文章到blogger?
- 我使用HKEY_LOCAL_MACHINE\Software\....\Explorer 这条表项创建NoDrives与NoViewOnDrive并写入盘符的隐藏码如何不重启就生效?
- 公司要求用OpenGL写3D交互界面,不知应该在哪里找资料
- 如何获取qq程序的窗口句柄
- 哪位高手给个思路,关于刷屏的
- 如何能让splitter静止?
- VC office编程求助,如何捕获消息
- 请问,导入.reg文件的时候,怎么才能不显示对话框?
- 写Splitter窗口时在CMainFrame中加入include "MyProgView.h" and Include "MyProgLeft.h"时为何还有错误?
- 在WTL/ATL中有没有打开文件的模板或类,就象MFC中CFile一样的?
- ※※※兄弟姐妹们快来,聊聊网易泡泡(和msn差不多)是怎么做的?※※※
在www.codeproject.com的GDI+项 里有很好的double_buffer的例子,你可以看看。
这个函数怎么用牙!
双缓冲是两个表面
一个主表面还有一个与他联系的表面
当然可以定义三缓冲等,只要有足够的表面与主表面联系但是在表面上写字我没用过,只知道在上面加位图另外,创建表面的时候可以指定创建的位置
内存或者是显存
能不能把你下载的发给我啊。
我下了, 搞了半天出错呢?[email protected]
就能保证字体真实吗?
如果还是写在位图上,我觉得还是不行呀!
CBitmap MemBitmap;//定义一个位图对象//随后建立与屏幕显示兼容的内存显示设备
MemDC.CreateCompatibleDC(NULL);
//这时还不能绘图,因为没有地方画 ^_^
//下面建立一个与屏幕显示兼容的位图,至于位图的大小嘛,可以用窗口的大小
MemBitmap.CreateCompatibleBitmap(pDC,nWidth,nHeight);
//将位图选入到内存显示设备中
//只有选入了位图的内存显示设备才有地方绘图,画到指定的位图上
CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);//先用背景色将位图清除干净,这里我用的是白色作为背景
//你也可以用自己应该用的颜色
MemDC.FillSolidRect(0,0,nWidth,nHeight,RGB(255,255,255));//绘图
MemDC.MoveTo(……);
MemDC.LineTo(……);//将内存中的图拷贝到屏幕上进行显示
pDC->BitBlt(0,0,nWidth,nHeight,&MemDC,0,0,SRCCOPY);//绘图完成后的清理
MemBitmap.DeleteObject();
MemDC.DeleteDC();上面的注释应该很详尽了,废话就不多说了。