关于VC画图最大化 或者最小化窗口的时候图像消失
来源:百度知道 编辑:UC知道 时间:2024/05/24 16:15:05
我该如何消除并让图像实时显示呢?
你好,希望我的答复对你有帮助。
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