• 全部
  • Windows SDK/API
  • 基础类
  • ActiveX
  • 数据库及相关技术
  • 网络及通讯开发
  • VCL组件使用和开发
  • 问答

关于背景重绘的问题

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);
//=============================
现在的问题是:
如果改变主窗体的大小,主窗体的背景重新绘制后,客户区的图像是重绘前和重绘后的图像的交叠,如果此时将主窗体最小化再最大化,则图像又恢复正常了。请问高手如何解决改变大小时的图像绘制问题?
...全文
10 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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函数!
回复
相关推荐
发帖
C++ Builder
创建于2007-08-02

1.3w+

社区成员

C++ Builder相关内容讨论区
申请成为版主
帖子事件
创建了帖子
2003-08-09 08:09
社区公告
暂无公告