关于VC画图最大化 或者最小化窗口的时候图像消失
发布网友
发布时间:2023-11-25 09:47
我来回答
共4个回答
热心网友
时间:2024-11-24 18:45
你好,希望我的答复对你有帮助。
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
热心网友
时间:2024-11-24 18:45
最大化、最小化和对话框弹出来的时候都发出Invalidate指令就让那个地区的图画重绘,从而调用OnDraw()。你可以利用CPtrArray这个类,将画好的图形保存,在OnDraw()中进行显示。
热心网友
时间:2024-11-24 18:46
最大化、最小化以及对话框弹出都会发送Invalidate()引起窗口重绘,从而调用OnDraw()。你可以利用CPtrArray这个类,将画好的图形保存,在OnDraw()中进行显示。
热心网友
时间:2024-11-24 18:47
把你画图的代码放到OnPaint函数中,就不会消失了.如果有问题HI我