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

再问Canvas->Rectangle(。。。)

楼主gloom(苍狗白云)2001-07-26 11:07:39 在 C++ Builder / 基础类 提问

用Canvas->Rectangle做一个Image的画布清空函数,但是他竟然清不于净,会留下一些污点,为什么?有谁能提供清空画布的函数或方法吗?要清空画布的所有内容,如同一个新的画布一样。  
  void   TForm1::CanvasClear(TCanvas*   pCanvas)//此处pCanvas=Image1->Canvas;  
  {  
                  pCanvas->Brush->Color=clWhite;  
                  pCanvas->Brush->Style=bsSolid;//(自定)  
                  pCanvas->Pen->Color=clWhite;  
                  pCanvas->Rectangle(Image1->Left,Image1->Top,Image1->Left+Image1->Width,Image1->Top+Image1->Height);//(左,上,宽,高)  
                  pCanvas->Pen->Color=clBlack;  
  }  
  这段代码有什么问题? 问题点数:10、回复次数:13Top

1 楼XioGua(明日复明日)回复于 2001-07-26 11:09:55 得分 0

应该是没有问题啊...  
   
  0_0Top

2 楼dycdyc123(重出江湖)回复于 2001-07-26 11:14:30 得分 0

Use   Image1->Canvas->reFresh();  
  rty   again@1Top

3 楼wjzhuang(程序猪)回复于 2001-07-26 11:29:32 得分 0

repaintTop

4 楼gloom(苍狗白云)回复于 2001-07-26 11:42:30 得分 0

Refresh()和Repaint()都不行的啊,我早就用过了,所以才不得以而用   Rectangle,是不是上面的的区域有问题啊?Top

5 楼xzgyb(老达摩)回复于 2001-07-26 11:50:54 得分 0

FillRectTop

6 楼seahorse(找了个好工作!)回复于 2001-07-26 11:53:01 得分 0

image->Picture   =   NULL;Top

7 楼gloom(苍狗白云)回复于 2001-07-26 11:59:43 得分 0

还是不行,我刚刚试了一下Top

8 楼hotyei(出于蓝胜于蓝)回复于 2001-07-26 13:19:36 得分 0

zzgyb应该对的。Top

9 楼gloom(苍狗白云)回复于 2001-07-26 14:05:30 得分 0

请看:  
  TForm1   *Form1;  
  TRect   rect;  
  //---------------------------------------------------------------------------  
  __fastcall   TForm1::TForm1(TComponent*   Owner)  
                  :   TForm(Owner)  
  {  
                  rect.Left=Image1->Left;  
                  rect.Top=Image1->Top;  
                  rect.Right=Image1->Left+Image1->Width;  
                  rect.Bottom=Image1->Top+Image1->Height;  
  }  
  //---------------------------------------------------------------------------  
   
  void   __fastcall   TForm1::Memo1Change(TObject   *Sender)  
  {  
                  Image1->Canvas->FillRect(rect);  
                  Image1->Canvas->TextOut(0,0,Memo1->Text);  
  }  
   
  运行后,在MEMO中连续输入10个g,看看会出现什么情况?不堪入目啊!  
  是不是其它地方有误?Top

10 楼wjzhuang(程序猪)回复于 2001-07-26 14:08:34 得分 0

刷新  
  Image1->Canvas->FillRect(rect);  
                  Top

11 楼gloom(苍狗白云)回复于 2001-07-27 09:19:42 得分 0

怎么刷新?Refresh()????Top

12 楼WieldWolf(怎么处理用户交互啊)回复于 2001-08-04 17:21:16 得分 10

Image1->Picture->Assign(NULL);  
  或  
  Image1->Picture->Bitmap=NULL;  
  或  
  bitmaps=NULL;  
  或  
  Image1->Picture->Graphic=NULL;  
  Top

13 楼gloom(苍狗白云)回复于 2001-08-04 17:22:13 得分 0

我已经知道了Top

相关问题

  • 小小疑问,有关Canvas->Rectangle
  • Canvas的问题?
  • Canvas的问题?
  • form Canvas问题
  • canvas
  • 为什么在GroupBox中用Canvas->Rectangle(...)画不出来?????
  • Canvas的问题(急)
  • Canvas显示问题
  • 关于canvas问题
  • delphi的canvas问题!

关键词

  • top
  • null
  • image1
  • pcanvas
  • 画布
  • canvas
  • rectangle
  • 清空
  • tform
  • rect

得分解答快速导航

  • 帖主:gloom
  • WieldWolf

相关链接

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

广告也精彩

反馈

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