Form窗体添加背景图片

paip.提升用户体验-------在C++ Builder 中为Form窗体添加背景图片
paip.在C++ Builder 中为Form窗体添加背景图片


Form窗体添加背景图片,一般好几种方法:
1.设置法.但是有些gui库没有提供.
2.image法,不个image放的个最底下.
3.窗体paint事件.重绘.


vcl好像没设置窗体背景,只好paint,三,按道理是paint可以做了.实际上只能使用image实现了,,XPSP3..   BCB2009

 


image组件方法.
  在窗体上添加一image组件,设置image组件的Align属性为alClient即可,编程贵在灵活,就怕想不到,没有办不到的.


作者:xt1976 回复日期:2002-12-31 2:33:07
  再补充一句,设置image组件的Picture属性为你想要的背景图象,Stretch属性设为true,让图片充满整个image组件就可以了.

 

 


FormPaint方法.
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Image1->Picture->LoadFromFile(".\\face.bmp");
Width=Image1->Width;
Height=Image1->Height;
Repaint();
}


或者
在formpaint里自己画,想画什么画什么,比如下面的是画纯色的
void __fastcall TForm1::FormPaint(TObject *Sender)
{


    //从资源中加载BMP图片显示
    Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
    pBitmap->Handle = LoadBitmap(HInstance, "BMP");
    Canvas->Draw(0, 0, pBitmap);
    delete pBitmap;


 


    //从文件中加载JPEG图片显示 ,加入头文件#include <jpeg.hpp> 


    TJPEGImage *pJPEG = new TJPEGImage;
    pJPEG->LoadFromFile("d://moon.jpeg");
    Canvas->Draw(300, 0, pJPEG);
}

 


或者
要事不显示,问题已经解决,原来不是程序的问题,而是图片大小超过了窗口的大小。。。。


但是碰到了另外一个问题。。由于上述代码是放在void __fastcall TFmMain::FormPaint(TObject *Sender)里的,现在在窗体里加入一个Panel, Panel里面也会放一张这样的背景图,请问各位大侠有没有办法取消Panel里显示背景图啊。。。。
 std::auto_ptr<Graphics::TBitmap> BrushBmp(new Graphics::TBitmap);


    BrushBmp->LoadFromFile("bg.bmp");


    Canvas->Brush->Bitmap = BrushBmp.get();


    Canvas->FillRect(Rect(0, 0, _width, _height));


    Canvas->Brush->Bitmap = NULL;
   
   
参考:
C++Builder中不规则窗体的快速显示_ChinaUnxi SQL Server频道-SQL Serv数据库.htm
BCB中显示图片BMP和JPEG - 上善若水 - 博客频道 - CSDN.NET.htm
窗口笔刷不起作用 - CSDN论坛 - CSDN.NET.htm

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值