Image控件中,pmXor方式,如何画出期望颜色的线

GeoPhoenix 2010-08-17 03:15:25
好长时间不写程序了,最近写了一段代码,再Image控件上编辑曲线,Image1->Canvas->Pen->Color一开始默认,Pen->Mode = pmXor,结果Pen->Color不论如何设置,画出来的线都是一个颜色,这事怎么回事?各位大虾,请帮忙看看这事怎么回事?
默认的Pen->Color = 就是原来的颜色,没有改动,还有那位大虾用CB写过类似CAD的程序?请回复,重金求教!
...全文
279 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
rxjh68 2010-10-02
  • 打赏
  • 举报
回复
这么多分,不会,着急呀
GeoPhoenix 2010-10-02
  • 打赏
  • 举报
回复
实在不好意思哈,看来CB的前途堪忧啊,重金之下也没有人灌水,55555,感谢samchoy(老蔡) 的指点:
这个期望颜色的设置实在是简单,只是当时搞不清与那个颜色相异或,下面为设置代码:
TPenMode OldPenMode = Image1->Canvas->Pen->Mode;
TColor OldPenColor = Image1->Canvas->Pen->Color;
TColor YourColor = xxxx;
//下面这句关键,窍门就在这里了
Image1->Canvas->Pen->Color = YourColor ^ Image1->Canvas->Brush->Color;
Image1->Canvas->Pen->Mode = pmXor;
Image1->Canvas->MoveTo(m_PointA.x,m_PointA.y);
Image1->Canvas->LineTo(m_PointB.x,m_PointB.y);
Image1->Canvas->MoveTo(m_PointA.x,m_PointA.y);
Image1->Canvas->LineTo(X,Y);
m_PointB.x= X;
m_PointB.y= Y;
//回复原来设置
Image1->Canvas->Pen->Color = OldPenColor;
Image1->Canvas->Pen->Mode = OldPenMode;

//结束
希望这点小窍门能对需要的人有点帮助,再一次感谢samchoy(老蔡)!


ccrun.com 2010-08-18
  • 打赏
  • 举报
回复
这么高的分,水源大牛居然没有来凑热闹,真不可思议。
samchoy 2010-08-17
  • 打赏
  • 举报
回复
是个好主意

不过拖动时用pmXor,确定后再用pmCopy画一下也是可以接受的
Waiting4you 2010-08-17
  • 打赏
  • 举报
回复
哇,是两百分啊~~抢劫!!!
象CAD一样要画不同颜色的线,用pmXor应该不太合适,一种颜色跨过其它颜色时会变化的。我只做过编辑线段的程序,线段中有几个锚点,拉动它变化曲线,因为线段不多(不超过50根),所以是直接使用双缓冲重画的,就是先画到Bitmap上,再画到窗体上。为了改进拖动线段时的绘图效率,我把除当前线段外的所有东东画到另一个Bitmap上,然后用这个Bitmap不断覆盖并重画当前线段来实现的。楼主也可以试试,效率应该还可以吧,看不出“跳帧”。
AFreshGirl 2010-08-17
  • 打赏
  • 举报
回复

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Image1->Canvas ->Pen ->Mode = pmXor;
Image1->Canvas->Pen ->Color = clRed;
Image1->Canvas ->Pen ->Width = 10;
Image1->Canvas ->MoveTo(0,0);
Image1->Canvas->LineTo(100,100);
}

这个符合楼主的情况吗?能改变颜色的啊,只是颜色不是红色罢了。
GeoPhoenix 2010-08-17
  • 打赏
  • 举报
回复
理解,晚上在找你
samchoy 2010-08-17
  • 打赏
  • 举报
回复
上班中,无法上QQ。。。
GeoPhoenix 2010-08-17
  • 打赏
  • 举报
回复
你这家伙原来猫这了,怪不得不见影。上QQ有事找你
samchoy 2010-08-17
  • 打赏
  • 举报
回复
bs喜欢以重金诱惑别人滴淫

552

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 茶馆
社区管理员
  • 茶馆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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