关于VC画图最大化 或者最小化窗口的时候图像消失
我做了一个VC画图的程序,我画完图后,最大化窗口或者最小化窗口图像就会消失,还有如果有消息框弹出的话,消息框覆盖的区域图像也会消失,我该如何消除并让图像实时显示呢?...
我做了一个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
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指令就让那个地区的图画重绘,从而调用OnDraw()。你可以利用CPtrArray这个类,将画好的图形保存,在OnDraw()中进行显示。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最大化、最小化以及对话框弹出都会发送Invalidate()引起窗口重绘,从而调用OnDraw()。你可以利用CPtrArray这个类,将画好的图形保存,在OnDraw()中进行显示。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把你画图的代码放到OnPaint函数中,就不会消失了.如果有问题HI我
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询