我通过设备DC来显示位图CClientDC dc(this);
CDC memDC;
CRect rect;
CBitmap bitmap,b1;
// b1=bitmap;
HBITMAP bm;
GetWindowRect(rect);
CBitmap *pOldBitmap;
memDC.CreateCompatibleDC(&dc);
bitmap.CreateCompatibleBitmap(&dc, rect.Width(),rect.Height());
pOldBitmap = memDC.SelectObject(&bitmap);
memDC.BitBlt(0, 0, rect.Width(),rect.Height(), &dc, 0, 0, SRCCOPY);
bm=(HBITMAP)bitmap.GetSafeHandle();
// bitmap.Attach();
m_pStack->Add(bm);
memDC.SelectObject(pOldBitmap);
bitmap.Detach();但当最大化后消失了,怎么回事?怎么办?谢谢!!
CDC memDC;
CRect rect;
CBitmap bitmap,b1;
// b1=bitmap;
HBITMAP bm;
GetWindowRect(rect);
CBitmap *pOldBitmap;
memDC.CreateCompatibleDC(&dc);
bitmap.CreateCompatibleBitmap(&dc, rect.Width(),rect.Height());
pOldBitmap = memDC.SelectObject(&bitmap);
memDC.BitBlt(0, 0, rect.Width(),rect.Height(), &dc, 0, 0, SRCCOPY);
bm=(HBITMAP)bitmap.GetSafeHandle();
// bitmap.Attach();
m_pStack->Add(bm);
memDC.SelectObject(pOldBitmap);
bitmap.Detach();但当最大化后消失了,怎么回事?怎么办?谢谢!!
在按按钮的代码里面flag = true;
Invalidate()ondraw里面if(flag){
//画图片。
}
==================
所有的画图动作最好都放在OnDraw中,然后通过调用Invalidate来通知系统重绘
提界面问题,UIPower有问必答!
界面论坛:http://www.uipower.com/bbs我们有专员负责网友问题的解答,真诚为你服务!
[如果有很紧急的问题,也可以直接致电我们:021-33130099-806]
提界面问题,UIPower有问必答!
界面论坛:http://www.uipower.com/bbs我们有专员负责网友问题的解答,真诚为你服务!
[如果有很紧急的问题,也可以直接致电我们:021-33130099-806]
1. 最大化后窗口重绘了,所以此时图像被清除2. 如果你不想放在OnDraw内实现,那么可以这样做:
将下边各个变量都定义成对话框的成员CClientDC dc(this);
CDC memDC;
CRect rect;
CBitmap bitmap,b1;
HBITMAP bm; 析构函数内删除,构造函数内创建。3. 如果觉得麻烦,那就建议把代码放入OnDraw内,因为OnDraw的参数内已经有了CDC,所以不必再定义CDC memDC;然后用10楼的方法,再定义一个
BOOL m_flag;//成员变量m_flag = TRUE;//进行绘图
m_flag = FALSE;//不绘图是否显示图片就看m_flag的值了。
提界面问题,UIPower有问必答!
界面论坛:http://www.uipower.com/bbs我们有专员负责网友问题的解答,真诚为你服务!
[如果有很紧急的问题,也可以直接致电我们:021-33130099-806]