CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

如何在Panel上画图

楼主tjzzx888(青草)2002-12-03 20:10:06 在 C++ Builder / 基础类 提问

Panel没有Canval属性,如何在它上面画图呢? 问题点数:20、回复次数:20Top

1 楼myy()回复于 2002-12-03 20:17:26 得分 1

1.放一个Image  
  2.  
  TControlCanvas   ca=new   TControlCanvas();  
  ca->Control=Panel1;Top

2 楼myy()回复于 2002-12-03 20:20:06 得分 1

TControlCanvas   *ca=new   TControlCanvas();  
  ca->Control=Panel1;  
  delete   ca;Top

3 楼xpyilin(香蕉)回复于 2002-12-03 20:20:18 得分 1

在Panel上放个Image,Align设置为AlClient,然后在Image上画图。Top

4 楼xpyilin(香蕉)回复于 2002-12-03 20:21:12 得分 1

楼上好快啊!:)Top

5 楼zbc(修身养息,百战不怠)回复于 2002-12-03 20:22:07 得分 1

用下面的方法来做即可:  
  void   __fastcall   TForm1::Button1Click(TObject   *Sender)  
  {  
  TImage   *img   =   new   TImage(Application);  
  img->Parent   =   Panel1;  
  img->Align   =   alClient;  
  img->Picture->LoadFromFile("c:\\贝壳800.bmp");  
   
  }  
  Top

6 楼myy()回复于 2002-12-03 20:22:44 得分 1

宽带啊,香蕉大哥!Top

7 楼tjzzx888(青草)回复于 2002-12-03 20:28:44 得分 0

可是Panel的Brush属性有什么用呢?Top

8 楼myy()回复于 2002-12-03 20:32:23 得分 1

TControlCanvas   *ca=new   TControlCanvas();  
  ca->Control=Panel1;  
  //画......  
  delete   ca;  
   
  Panel的Brush与ca->Brush没有关系的。  
   
  BCB's   Help的解释:  
   
  Determines   the   color   and   pattern   used   for   painting   the   background   of   the   control.Top

9 楼tjzzx888(青草)回复于 2002-12-03 20:36:31 得分 0

to   :   myy()    
        撇开上面的不说,Panel的brush属性有什么用?Top

10 楼tjzzx888(青草)回复于 2002-12-03 20:37:53 得分 0

或者说,我想用一个画刷填充panel,如何做到呢?Top

11 楼myy()回复于 2002-12-03 20:45:26 得分 1

TControlCanvas   *ca=new   TControlCanvas();  
  ca->Control=Panel1;  
  ca->Brush->Style=bsCross;  
  ca->FillRect(Panel1->ClientRect);  
  delete   ca;  
   
  有很多种方法可以达到目的。  
  我觉得你不必去深究这其中的细节(其实我也不知道:-))。Top

12 楼tjzzx888(青草)回复于 2002-12-03 20:53:55 得分 0

to::   myy()    
      我按你说的方法做了,虽没有报错,但panel也没有反应。  
      我想要的是用一个小bmp图填充满整个panelTop

13 楼xpyilin(香蕉)回复于 2002-12-03 20:57:08 得分 1

Panel的Brush属性应该是有用的,下面的代码:  
  Panel1->Brush->Color   =   clRed;  
  Panel1->Brush->Bitmap->Canvas->FillRect(Rect(1,1,10,10));  
  可以编译通过,但是执行时显示错误,如果放到Form的OnCreate()事件中,可以看到Panel是被变成红的了(瞬间)。Top

14 楼xpyilin(香蕉)回复于 2002-12-03 21:05:44 得分 1

如果只是想填充Panel,   zbc(代码研究ing)   的方法可以啊,或者用我的方法,然后:  
  Image1->Canvas->Brush->Color   =   clRed;  
  Image1->Canvas->FillRect(Rect(1,1,10,10));Top

15 楼myy()回复于 2002-12-03 21:11:04 得分 1

建议你还是简单点吧:放一个Image1在Panel中,设为alClient  
  Image2是一个小图片,256色的  
                                        ^^^^^^^  
  Image1->Canvas->Brush->Bitmap=Image2->Picture->Bitmap;  
  Image1->Canvas->FillRect(Image1->ClientRect);  
  Top

16 楼myy()回复于 2002-12-03 21:13:32 得分 1

Image2是一个小图片,256色的可能不行,我用的是16色的,你试试!Top

17 楼tsk()回复于 2002-12-06 20:28:30 得分 1

 
    帮你UPTop

18 楼xi8kuang(xikuang)回复于 2002-12-06 22:29:22 得分 1

HDC   hdc   =   GetDC(Panel1->Handle);  
                  ::Ellipse(hdc,   0,   0,   50,   50);  
                  ReleaseDC(Panel1->Handle,   hdc);  
   
  用API直接用它的句柄画Top

19 楼tjzzx888(青草)回复于 2002-12-11 14:48:48 得分 0

我想要的是用一个小bmp图填充满整个panel,怎么办到呀  
  Top

20 楼myy()回复于 2002-12-11 15:00:13 得分 6

我Kao,下面的你试过了吗????  
   
   
  建议你还是简单点吧:放一个Image1在Panel中,设为alClient,没图片  
  Image2是一个小图片,16色的  
                                        ^^^^^^^  
  Image1->Canvas->Brush->Bitmap=Image2->Picture->Bitmap;  
  Image1->Canvas->FillRect(Image1->ClientRect);Top

相关问题

  • 怎么在Panel 上画图!
  • 如何在<img>上画图?
  • 如何在TDrawGrid中画图?
  • 在DLL里如何画图
  • 在DBGRID中如何画图
  • 能够在panel 上画图形吗? panel 从tcustomControl 而来, tcustomControl是有Canvas 属性,但是panel 没有, 如何在panel画图形呢
  • 如何在对话框内画图
  • 如何在桌面上直接画图
  • 如何在任一窗口上画图
  • 如何在memo里画图形?

关键词

  • ca
  • 属性
  • panel
  • tcontrolcanvas
  • 画图
  • brush
  • fillrect
  • alclient
  • canvas
  • image

得分解答快速导航

  • 帖主:tjzzx888
  • myy
  • myy
  • xpyilin
  • xpyilin
  • zbc
  • myy
  • myy
  • myy
  • xpyilin
  • xpyilin
  • myy
  • myy
  • tsk
  • xi8kuang
  • myy

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo