关于多文档界面的一个小问题

星光伴月 2002-07-06 05:46:20
我想在父窗口中加入一幅背景图,可是并没有显示出来,为什么?我试着加一个Image控件可以它却总是在最前边。我该怎么做才能让它显示出来?
...全文
55 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sncel 2002-07-06
  • 打赏
  • 举报
回复
何必这么累呀,我专门给你打造的代码!!!
//背景用Jpg图片(头文件中加#include "Jpeg.hpp")
TJPEGImage * BackJpeg=new TJPEGImage;
Graphics::TBitmap *BackBmp = new Graphics::TBitmap;
BackJpeg->LoadFromFile("C:\\aaa.JPG");
BackBmp->Assign(BackJpeg);
Brush->Bitmap =BackBmp;

//背景用Bmp图片
Graphics::TBitmap *BackBmp = new Graphics::TBitmap;
BackBmp->LoadFromFile("C:\\aaa.Bmp");
Brush->Bitmap=BackBmp;

softman_2000 2002-07-06
  • 打赏
  • 举报
回复
在Main.h头文件声明变量:
Pointer OriginalClientProc;
Pointer ClientObjectInstance;
Graphics::TBitmap *BGBitmap; // 背景图

然后,在MainForm的OnCreate事件中添加代码:
ClientObjectInstance = MakeObjectInstance(ClientProc);
OriginalClientProc = (Pointer)SetWindowLong(ClientHandle,
GWL_WNDPROC,(long)ClientObjectInstance);
BGBitmap = new Graphics::TBitmap();
BGBitmap->LoadFromFile("......bmp");
然后添加函数
void __fastcall TMainForm::ClientProc(TMessage &Msg)
{
switch(Msg.Msg)
{
case WM_ERASEBKGND:
TRect rect;
::GetClientRect(ClientHandle,(RECT*)&rect);
::BitBlt(Hdc,0,0,rect.Right-rect.Left,rect.Bottom-
rect.Top,BGBitmap->Canval->Handle,0,0,SRCCOPY);
Msg.Result = true;
return ;
default:
Msg.Result = CallWindowProc((FARPROC)OriginalClientProc,
ClientHandle,Msg.Msg,Msg.WParam,Msg.LParam);
break;
}
}
HearMe 2002-07-06
  • 打赏
  • 举报
回复
gamelife78@yahoo.com.cn
ydx 2002-07-06
  • 打赏
  • 举报
回复
有一个例子,我给你发过去,你给个信箱,我的是:yedexin@zebtech.2y.net
xc2927 2002-07-06
  • 打赏
  • 举报
回复
我想你试试加上一个pannl控件试试,哪个控件是这样拼的吧,我一下想不起来啦

604

社区成员

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

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