在pmXor模式下怎样才能得到想要的颜色?

GeoPhoenix 2004-08-22 10:53:07
在Canvas上划线,使用pmXor模式如何才能得到想要的颜色?代码大致如下
Canvas-Pen->Mode = pmXor;
Canvas-Pen->Coloe = ????; //这里如何设置,假如我想最终画出来的线条为clBlue
Canvas->MoveTo(0,0);
Canvas->LineTo(100,100);
...全文
94 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiangchun_xn 2004-09-05
  • 打赏
  • 举报
回复
奇怪了,既然你要xor的方式绘图。为什么还要???
GeoPhoenix 2004-09-05
  • 打赏
  • 举报
回复
诸位帮帮忙啊
GeoPhoenix 2004-09-05
  • 打赏
  • 举报
回复
我想xor的结果为我指定的颜色,比如我想最后的颜色是红色的(大部分)在蓝色背景上或其他颜色的背景上该按照一个什么样的标准来设定?
constantine 2004-08-24
  • 打赏
  • 举报
回复
这个跟背景有关
GeoPhoenix 2004-08-24
  • 打赏
  • 举报
回复
怎么没人理啊?
var intPos,intX,intY: longint; begin intPos := message.lParam; intX := Trunc(intPos/10000); intY := (intPos mod 10000); if not CutRange.MouseIsDown then begin if not ((intX>Left) and (intXTop) and (intYpmCopy); end; if CutRange.MouseIsDown then begin uDrawLine(intX,intY,pmXor); end; end; alPolyLine: //礶ヴ種Ρ絬 begin if message.WParam = WM_LBUTTONDOWN then begin CutRange.StartPoint.X := intX; CutRange.StartPoint.Y := intY; CutRange.MouseIsDown := True; end else if message.WParam = WM_LBUTTONUP then begin CutRange.EndPoint.X := intX; CutRange.EndPoint.Y := intY; CutRange.MouseIsDown := False; uDrawPolyLine(intX,intY); end; if CutRange.MouseIsDown then begin uDrawPolyLine(intX,intY); end; end; alRang: //礶痻 begin if message.WParam = WM_LBUTTONDOWN then begin CutRange.StartPoint.X := intX; CutRange.StartPoint.Y := intY; CutRange.EndPoint.X := intX; CutRange.EndPoint.Y := intY; CutRange.MouseIsDown := True; end else if message.WParam = WM_LBUTTONUP then begin CutRange.EndPoint.X := intX; CutRange.EndPoint.Y := intY; CutRange.MouseIsDown := False; uDrawRang(intX,intY,pmCopy); end; if CutRange.MouseIsDown then begin uDrawRang(intX,intY,pmXor); end; end; alRangC: //礶蛾à痻 begin if message.WParam = WM_LBUTTONDOWN then begin CutRange.StartPoint.X := intX; CutRange.StartPoint.Y := intY; CutRange.EndPoint.X := intX; CutRange.EndPoint.Y := intY; CutRange.MouseIsDown := True; end else if message.WParam = WM_LBUTTONUP then begin CutRange.EndPoint.X := intX; CutRange.EndPoint.Y := intY; CutRange.MouseIsDown := False; uDrawRangC(intX,intY,pmCopy); end; if CutRange.MouseIsDown then begin uDrawRangC(intX,intY,pmXor); end; end; alRoud: //礶蛾 begin if message.WParam = WM_LBUTTONDOWN then begin CutRange.StartPoint.X := intX; CutRange.StartPoint.Y := intY; CutRange.EndPoint.X := intX; CutRange.EndPoint.Y := intY; CutRange.MouseIsDown := True; end else if message.WParam = WM_LBUTTONUP then begin CutRange.EndPoint.X := intX; CutRange.EndPoint.Y := intY; CutRange.MouseIsDown := False; uDrawRoud(intX,intY,pmCopy); end; if CutRange.MouseIsDown then begin uDrawRoud(intX,intY,pmXor); end; end; alText: //糶ゅ begin if message.WParam = WM_LBUTTONDOWN then begin if TextFormHan<=0 then begin SendMessage(CutRangeFormHan,WM_CLOSE,0,0); CutRangeFormHan := 0; TextForm := TTextForm.Create(nil); TextFormHan := TextForm.Handle; TextForm.Left := intX; TextForm.Top := intY; CutRange.StartPoint.X := intX; CutRange.StartPoint.Y := intY; TextForm.Show; btnText.Down := False; end else begin if (intXTextForm.Left+TextForm.Width) or (intY>TextForm.Top+TextForm.Height) then begin SendMessage(TextFormHan,MSG_SANWRITETEXT,100,0); // SendMessage(TextFormHan,WM_CLOSE,0,0); TextFormHan :=0; uUnWinHook; // CutRange.EndPoint.X := intX; // CutRange.EndPoint.Y := intY; CutRange.MouseIsDown := False; CurAction := alNone; end; end; end else if message.WParam = WM_LBUTTONUP then begin end; //MoveWindow(TextFormHan,intX,intY,1,1,True); end; end; end;

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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