我用VC写的程序界面上贴了一些位图
当其他程序窗口在我的程序界面上晃动时,会有一条一条的纹路
当我把我的程序一移动就好了
是不是我在Paint或WM_PAINT里面少了什么
当其他程序窗口在我的程序界面上晃动时,会有一条一条的纹路
当我把我的程序一移动就好了
是不是我在Paint或WM_PAINT里面少了什么
解决方案 »
- 在IE8下 线程中调用getBoundingClientRect崩溃何解,急啊
- 如何设置框架窗口背景画刷?
- 用VC6开发程序 在其他电脑运行提示缺少MFC42D.DLL
- CComboBox 点击下拉箭头的时候,不显示列表框,而是显示我做的窗口,请问如何做?
- 关于点击菜单项为什么不发送WM_COMMAND的问题
- 请教异步的小问题
- 如何列出一个目录里的所有文件包括子目录里的文件
- 请问想买一台可以听MP3和看电子书的产品,选什么比较的好?
- 请教:对话框中的某一控件是否在任何情况条件,都不需要为此控件建一个类
- 如何正确设置滚动条范围?困扰了3天了????
- 大虾帮我看看这种网络编程是否会出问题
- 关于菜单句柄的获取问题
现在刚解决掉,
在适当的地方加上UpdateWindow();刷新下窗口试试。
====================
在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();
{
CRect rect;
GetClientRect(&rect);
ScreenToClient(&rect);
pDC->ExcludeClipRect(&rect);
}