关于背景重绘的问题

xrfei 2003-08-09 08:09:41
MDI主窗体的背景,我用如下方法绘制:
//=============================
Create事件中:
BkgndBitmap = new Graphics::TBitmap(); //加载背景图片
BkgndBitmap->LoadFromResourceName((unsigned int) (HInstance),"BkgndBmp");
Paint事件中:
TRect rect;
::GetClientRect(ClientHandle,(RECT*)&rect);
Canvas->StretchDraw(rect, BkgndBitmap);
//=============================
现在的问题是:
如果改变主窗体的大小,主窗体的背景重新绘制后,客户区的图像是重绘前和重绘后的图像的交叠,如果此时将主窗体最小化再最大化,则图像又恢复正常了。请问高手如何解决改变大小时的图像绘制问题?
...全文
38 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xrfei 2003-08-14
  • 打赏
  • 举报
回复
我已经解决问题了,感谢各位支持。
我的方法是:
InvalidateRect(ClientHandle, NULL, true);
wangxd 2003-08-10
  • 打赏
  • 举报
回复
在form的onresize事件中试试
xrfei 2003-08-10
  • 打赏
  • 举报
回复
我的Email是liuzz@chanait.com,多谢!!!
Jagen在路上 2003-08-10
  • 打赏
  • 举报
回复
MDI窗体与普通的窗体是不一样的,操作起来没有那么容易的!
留下你的Email我给你传一个代码你看看就知道如何操作了!
gfh_79_0 2003-08-10
  • 打赏
  • 举报
回复
Paint事件中:
TRect rect;
::GetClientRect(ClientHandle,(RECT*)&rect);
Canvas->StretchDraw(rect, BkgndBitmap);

我想是因为你没有把背景擦除吧,所以重叠,最大化时,背景和你重绘的是一样的所以看起来是正常的 。
怎么把背景擦掉,找找资料应该不难的。
xrfei 2003-08-10
  • 打赏
  • 举报
回复
UP
Jagen在路上 2003-08-09
  • 打赏
  • 举报
回复
这个不行,你最好重载WinProc函数!

13,870

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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