求教,如何做出线形、线宽和填充等的列表?

haoyan 2005-11-29 05:27:05
要在canvas上作图,需定义线形(实线虚线点划线)线宽以及填充等,如何以图形加文字的方式来做出列表,或者如何采用word画图的方式?
...全文
102 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
houing_0123 2005-12-02
  • 打赏
  • 举报
回复
线型号 canvas->Pen->Style (psDashDotDot点划线)
线宽 canvas->Pen->Width
填充 canvas->Brush->Style canvas->Brush->Color
arraden 2005-12-02
  • 打赏
  • 举报
回复
自己做一个下拉框选择列表,定义线形,线宽,和填充等等,或者到网上找找看,有没有这方面的控件
ccrun.com 2005-11-29
  • 打赏
  • 举报
回复
自己写了个简单的线型选择演示,在窗体上添加一个ListBox,然后在ListBox的OnDrawItem和OnClick事件中添加以下代码:

.h文件中:
__published: // IDE-managed Components
TListBox *ListBox1;
void __fastcall ListBox1DrawItem(TWinControl *Control, int Index,
TRect &Rect, TOwnerDrawState State);
void __fastcall ListBox1Click(TObject *Sender);

.cpp文件中:
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
// psSolid, psDash, psDot, psDashDot, psDashDotDot, psClear, psInsideFrame
ListBox1->Style = lbOwnerDrawFixed;
ListBox1->ItemHeight = 18;
for(int i=0; i<7; i++)
ListBox1->Items->Add(i);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ListBox1DrawItem(TWinControl *Control, int Index,
TRect &Rect, TOwnerDrawState State)
{
TListBox *lbx = (TListBox *)Control;
lbx->Canvas->FillRect(Rect);
lbx->Canvas->Pen->Style = TPenStyle(lbx->Items->Strings[Index].ToInt());
lbx->Canvas->Pen->Color = State.Contains(odSelected)? clRed: clBlack;
lbx->Canvas->MoveTo(Rect.Left + 4, Rect.Bottom - 9);
lbx->Canvas->LineTo(Rect.Width() - 8, Rect.Bottom - 9);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ListBox1Click(TObject *Sender)
{
Canvas->Pen->Style = TPenStyle(ListBox1->Items->Strings[ListBox1->ItemIndex].ToInt());
Canvas->MoveTo(10, 10);
Canvas->LineTo(100, 100);
}
constantine 2005-11-29
  • 打赏
  • 举报
回复
一般自己根据需要列举几个出来来,要不象pen的width可以用TSpinEdit,画的时候取他的值就行了
constantine 2005-11-29
  • 打赏
  • 举报
回复
对了,好像项目开发实例里面也有一个类似的
haoyan 2005-11-29
  • 打赏
  • 举报
回复
这么快就有回复了,谢谢,不过我想问的是怎样做出这些设置线形线宽的列表来.
constantine 2005-11-29
  • 打赏
  • 举报
回复
可以通过设置brush,font...这些属性来实现,东西比较多,我就不具体
举例,建议参考bcbdraw 这个程序,晚上有代码,应该是在
C++buidler高级编程实例里面自己找找吧,如果没有留个email给我,我给你发

13,873

社区成员

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

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