本文整理汇总了C++中Draw::DrawLine方法的典型用法代码示例。如果您正苦于以下问题:C++ Draw::DrawLine方法的具体用法?C++ Draw::DrawLine怎么用?C++ Draw::DrawLine使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Draw
的用法示例。
在下文中一共展示了Draw::DrawLine方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FramePaint
// frame painting
void XMLDragFrame::FramePaint(Draw& w, const Rect& r)
{
w.DrawRect(r, SColorFace());
int x1 = r.left + 1;
int x2 = r.right - 1;
int y1 = r.top + 1;
int y2 = r.bottom -1;
w.DrawLine(x1, y1, x2, y1, 1, SColorLight());
w.DrawLine(x2, y1, x2, y2, 1, SColorShadow());
w.DrawLine(x2, y2, x1, y2, 1, SColorShadow());
w.DrawLine(x1, y2, x1, y1, 1, SColorLight());
if(align == ToolBar::BAR_LEFT || align == ToolBar::BAR_RIGHT)
{
x1 = r.left + 5;
x2 = r.right - 5;
y1 = r.top + 4;
y2 = r.top + 9;
w.DrawLine(x1, y1, x2, y1, 2, SColorShadow());
w.DrawLine(x1, y2, x2, y2, 2, SColorShadow());
}
else
{
x1 = r.left + 4;
x2 = r.left + 9;
y1 = r.top + 5;
y2 = r.bottom - 5;
w.DrawLine(x1, y1, x1, y2, 2, SColorShadow());
w.DrawLine(x2, y1, x2, y2, 2, SColorShadow());
}
}
示例2: Paint
virtual void Paint(Draw& w) {
w.DrawRect(GetSize(), White());
w.DrawRect(10, 10, 60, 80, Green());
w.DrawLine(100, 10, 160, 80, 0, Black());
w.DrawLine(160, 10, 100, 80, 4, Red());
w.DrawLine(160, 40, 100, 50, PEN_DOT, Red());
w.DrawEllipse(210, 20, 80, 60, Blue());
w.DrawEllipse(310, 20, 80, 60, LtBlue(), 5, Red());
w.DrawArc(RectC(410, 20, 80, 60), Point(10, 10), Point(450, 80), 3, Cyan);
Vector<Point> p;
p << Point(30, 110) << Point(60, 180) << Point(10, 150) << Point(70, 150);
w.DrawPolyline(p, 4, Black);
p.Clear();
p << Point(130, 110) << Point(160, 180) << Point(110, 150) << Point(170, 120)
<< Point(130, 110);
w.DrawPolygon(p, Blue);
p.Clear();
p << Point(230, 110) << Point(260, 180) << Point(210, 150) << Point(270, 120)
<< Point(230, 110);
w.DrawPolygon(p, Cyan, 5, Magenta);
p.Clear();
p << Point(330, 110) << Point(360, 180) << Point(310, 150) << Point(370, 120)
<< Point(330, 110);
w.DrawPolygon(p, Cyan, 5, Magenta, I64(0xaa55aa55aa55aa55));
w.DrawImage(40, 240, CtrlImg::save());
w.DrawImage(110, 210, 80, 80, CtrlImg::save());
w.DrawImage(240, 240, CtrlImg::save(), Blue);
w.DrawImage(310, 210, 80, 80, CtrlImg::save(), Blue);
w.DrawText(20, 330, "Hello world!");
w.DrawText(120, 330, "Hello world!", Arial(15).Bold());
w.DrawText(220, 330, "Hello world!", Roman(15).Italic(), Red);
w.DrawText(320, 380, 400, "Hello world!", Courier(15).Underline());
}
示例3: Paint
void ScatterCtrl::Paint(Draw& w)
{
GuiLock __;
if (IsNull(highlight_0) && highlighting) {
highlighting = false;
KillTimeCallback();
}
if (!IsNull(highlight_0) && !highlighting) {
highlighting = true;
SetTimeCallback(-200, THISBACK(TimerCallback));
}
TimeStop t;
lastRefresh0_ms = GetTickCount();
if (IsEnabled()) {
if (mode == MD_DRAW) {
ScatterCtrl::SetDrawing(w, GetSize(), 1);
PlotTexts(w, GetSize(), 1);
} else {
ImageBuffer ib(GetSize());
BufferPainter bp(ib, mode);
ScatterCtrl::SetDrawing(bp, GetSize(), 1);
w.DrawImage(0, 0, ib);
PlotTexts(w, GetSize(), 1);
}
if (HasFocus()) {
w.DrawLine(0, 0, GetSize().cx, 0, 2, LtGray());
w.DrawLine(0, 0, 0, GetSize().cy, 2, LtGray());
int delta = -2;
#ifdef PLATFORM_WIN32
delta = 0;
#endif
w.DrawLine(GetSize().cx+delta, 0, GetSize().cx+delta, GetSize().cy, 2, LtGray());
w.DrawLine(0, GetSize().cy+delta, GetSize().cx, GetSize().cy+delta, 2, LtGray());
}
}
lastRefresh_ms = t.Elapsed();
}
示例4: Paint
void Paint(Draw &w)
{
Size sz = GetSize();
Rect rc = w.GetClip();
static bool first = true;
DUMP(rc);
if(first)
{
w.DrawRect(sz, SGreen);
first = false;
}
else
for(int i = rc.left; i <= rc.right; i++)
w.DrawLine(i, rc.top , i, rc.bottom, 0, (i & 1) ? SWhite : SBlack);
}
示例5: DrawSprings
void FormView::DrawSprings(Draw& w, const Rect& r, dword align, dword valign,
bool drawLeft, bool drawTop, bool drawRight, bool drawBottom, bool centered)
{
if (!IsLayout())
return;
int x = r.CenterPoint().x;
int y = r.CenterPoint().y;
if (drawLeft)
{
if (!centered)
y = YToGrid(r.top + r.Height() / 3);
if (align == Ctrl::LEFT || align == Ctrl::SIZE)
w.DrawLine(2, y, r.left, y, 1, LtRed());
else
for (int i = 5; i <= r.left; i += 5)
w.DrawLine(i, YToGrid(y - 5, !centered), i, YToGrid(y + 5, !centered), 1,
LtRed());
}
if (drawRight)
{
if (!centered)
y = YToGrid(r.top + r.Height() * 2 / 3);
if (align == Ctrl::RIGHT || align == Ctrl::SIZE)
w.DrawLine(r.right, y, GetRect().Width() - 2, y, 1, LtRed());
else
for (int i = r.right; i < GetRect().Width() + 5; i += 5)
w.DrawLine(i, YToGrid(y - 5, !centered), i, YToGrid(y + 5, !centered), 1,
LtRed());
}
if (drawTop)
{
if (!centered)
x = XToGrid(r.left + r.Width() / 3);
if (valign == Ctrl::TOP || valign == Ctrl::SIZE)
w.DrawLine(x, 2, x, r.top, 1, LtRed());
else
for (int i = 5; i <= r.top; i += 5)
w.DrawLine(XToGrid(x - 5, !centered), i, XToGrid(x + 5, !centered), i, 1,
LtRed());
}
if (drawBottom)
{
if (!centered)
x = XToGrid(r.left + r.Width() * 2 / 3);
if (valign == Ctrl::BOTTOM || valign == Ctrl::SIZE)
w.DrawLine(x, r.bottom, x, GetRect().Height() - 2, 1, LtRed());
else
for (int i = r.bottom; i < GetRect().Height() + 5; i += 5)
w.DrawLine(XToGrid(x - 5, !centered), i, XToGrid(x + 5, !centered), i, 1,
LtRed());
}
}
示例6: DrawRectLine
void DrawRectLine(Draw& w, Rect &r, int lineWidth, const Color &color) {
w.DrawLine(r.left, r.top, r.right, r.top, lineWidth, color);
w.DrawLine(r.right, r.top, r.right, r.bottom, lineWidth, color);
w.DrawLine(r.right, r.bottom, r.left, r.bottom, lineWidth, color);
w.DrawLine(r.left, r.bottom, r.left, r.top, lineWidth, color);
}
示例7: DrawGrid
void TreeTest::DrawGrid(Draw& w)
{
// draw a coordinate grid
// probably will be extracted into own object later
// needs to be smarter / more configurable
// would be nice to add a frame around the view
int inc,mins;
if(m_rcBnds.Width()>5000000.0)
{
inc = 1000000;
}
else if(m_rcBnds.Width()>500000.0)
{
inc = 100000;
}
else if(m_rcBnds.Width()>50000.0)
{
inc = 10000;
}
else if(m_rcBnds.Width()>5000.0)
{
inc = 1000;
}
else
{
inc = 100;
}
Color colGrid(128,128,128);
// draw grid
int x0 = (int)(m_rcBnds.left - fmod(m_rcBnds.left,inc) +0.5);
int y0 = (int)(m_rcBnds.bottom - fmod(m_rcBnds.bottom,inc)+0.5);
Pointf ptf1,ptf2;
Point pt1,pt2;
String s;
ptf1.y = m_rcBnds.bottom;
ptf2.y = m_rcBnds.top;
Font font(StdFont().GetFace(),(int)(StdFont().GetHeight()));//*m_fTextSizeFactor));
s = Format(" %.0f ",m_rcBnds.top);
mins = ::GetTextSize(s,font).cx;
for(int x = x0;x<m_rcBnds.right;x+=inc)
{
ptf1.x = ptf2.x = x;
pt1 = MPtoLP(ptf1);
pt2 = MPtoLP(ptf2);
s = Format(" %.0f ",x);
Size sz = ::GetTextSize(s,font);
if(pt1.x < mins)//sz.cx)
continue;
w.DrawText(pt1.x-sz.cy/2,pt1.y,900,s,font,colGrid);
// w.DrawText(pt1.x+sz.cy/2,pt1.y-sz.cx,-900,s,font,colGrid);
pt1.y-=sz.cx;
w.DrawLine(pt1, pt2, 1, colGrid);
}
ptf1.x = m_rcBnds.left;
ptf2.x = m_rcBnds.right;
s = Format(" %.0f ",m_rcBnds.right);
mins = ::GetTextSize(s,font).cx;
for(int y = y0;y<m_rcBnds.top;y+=inc)
{
ptf1.y = ptf2.y = y;
pt1 = MPtoLP(ptf1);
pt2 = MPtoLP(ptf2);
s = Format(" %.0f ",y);
Size sz = ::GetTextSize(s,font);
if(pt1.y > m_rcClient.bottom - mins)//sz.cx)
continue;
w.DrawText(pt1.x,pt1.y-sz.cy/2,s,font,colGrid);
pt1.x += sz.cx;
w.DrawLine(pt1, pt2, 1, colGrid);
}
}