关于VC画图最大化 或者最小化窗口的时候图像消失

来源:百度知道 编辑:UC知道 时间:2024/05/24 16:15:05
我做了一个VC画图的程序,我画完图后,最大化窗口或者最小化窗口 图像就会消失,还有 如果有消息框弹出的话,消息框覆盖的区域图像也会消失,
我该如何消除并让图像实时显示呢?

你好,希望我的答复对你有帮助。

1.我做了个示例工程(VC6下编译通过),下载地址:http://sites.google.com/site/qiujiejia1/Home/Draw_Bitmap.zip

2.以下是工程里的部分代码,仅供参考

(1)添加成员变量: HBITMAP bitmap;
(2) 在OnInitDialog()里初始化 bitmap
bitmap=(HBITMAP)LoadImage(NULL, //应用程序实例
"无上甚深微妙法.bmp", //路径
IMAGE_BITMAP,
0, //如果不置0,则此参数指定bitmap的宽(位图被拉伸)
0, //如果不置0,则此参数指定bitmap的高(位图被拉伸)
LR_LOADFROMFILE|LR_CREATEDIBSECTION|LR_DEFAULTSIZE);

(3)在OnPaint() 里添加绘图代码

CPaintDC dc(this); // device context for painting

HDC hMemDC=CreateCompatibleDC(dc.m_hDC); //创建内存DC
::SelectObject(hMemDC,bitmap); //把位图选进内存DC
BitBlt(dc.m_hDC,0,0,200,400,hMemDC,0,0,SRCCOPY); //内存DC映射到屏幕DC
::DeleteDC(hMemDC) ; //删除内存DC

最大化、最小化和对话框弹出来的时候都发出Invalidate指令就让那个地区的图画重绘,从而调用On