如何在窗口重绘时某些区域不发生改变?

one7th 2006-10-25 11:09:17
窗口最小化后重新显示在桌面,或者置于其他窗口后又重新显示时,如何让窗口的某些区域不改变?
我是用图片做的不规则窗口。请高手指教
void CXDlg::OnPaint()
{

CPaintDC dc(this);
CDC memDC;
memDC.CreateCompatibleDC(&dc);

CBitmap bmp;
bmp.LoadBitmap(IDB_MAINFIX);
CBitmap *pOldBmp;
pOldBmp = memDC.SelectObject(&bmp);

BITMAP bm;
bmp.GetBitmap(&bm);

dc.BitBlt(0, 0, bm.bmWidth, bm.bmHeight, &memDC, 0, 0, SRCCOPY);

memDC.SelectObject(pOldBmp);
bmp.DeleteObject();

}
...全文
207 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lurenfu 2006-10-25
  • 打赏
  • 举报
回复
代码发过来,我帮你改好
one7th 2006-10-25
  • 打赏
  • 举报
回复
不改变就是说我的窗口(图片)一部分已经变了,但是重绘以后原来变的部分又变回来了。
zhucde 2006-10-25
  • 打赏
  • 举报
回复
看这个例子:

http://www.vckbase.com/document/viewdoc/?id=759
baojian88888 2006-10-25
  • 打赏
  • 举报
回复
不明白lz什么叫不改变
窗口被挡住的所有区域都需要在WM_PAINT(OnPaint)中重画的

15,975

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧