请问在VC中用SetTimer()和Killtimer()函数实现
在屏幕中画图,让画的图滚动,怎样才能让不断
刷新的屏幕能不闪烁呢??
在屏幕中画图,让画的图滚动,怎样才能让不断
刷新的屏幕能不闪烁呢??
解决方案 »
- 关于win32多线程程序设计 MTVERIFY的简单问题
- vc2005 如何使用DBGRID
- 求教:no copy constructor available 如何解决?
- 大家好!原来VC6下有很多IDE资源,在VC.net下谁给推荐一下这样的东东:)?????
- 怎么我的下拉框无法显示出列表?
- 如何枚举所有窗口?能捕获隐藏窗口的句柄吗?
- 请问:怎么给MDI程序加一个自己的子窗口
- 有什么办法可以对线程的ID和HANDLE相互切换的吗??由ID到H,由H到ID..
- 请教什么是用户态和核心态?
- 我用VC6建立了一个CEditView,请问怎样取得编辑框里的字符呢?谢谢!
- 有请马江王进入接分
- 水晶报表9如何发布啊 ??
可以得到一堆的文章。
首先创建一个与客户区DC兼容的内存DC,然后在这个内存DC上面依次SelectObject需要显示的位图,然后再把这个内存DC用BitBlt到你的客户区DC上。
在OnDraw(CDC *pDC)中:CDC MemDC; //首先定义一个显示设备对象
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();