再问Canvas->Rectangle(。。。)
用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




