0
点赞
收藏
分享

微信扫一扫

行情绘图课程大纲1-基础知识


行情绘图课程大纲1-基础知识

  • ​​画布​​
  • ​​资源​​
  • ​​文字​​
  • ​​刷子​​
  • ​​画笔​​
  • ​​练习一​​

画布

HDC 画布句柄
获取画布句柄方式

  1. BeginPaint(), EndPaint(), 触发 InvalidateRect(), InvalidateRgn ()
    对应MFC的OnPaint()
void UIBlockList::OnPaint()
{
CPaintDC dc(this);
.......
}
  1. GetDC(), ReleaseDC() 对应MFC CClientDC在释放以前,无法在获取
  2. GetWindowDC(), ReleaseDC() 对应MFC CWindowDC在释放以前,无法在获取

资源

所有的资源都是以句柄的方式使用,在画布里面使用资源通过函数**SelectObject()**加载资源.一般使用完以后最好还原

HGDIOBJ obj = ::SelectObject(hDC, 资源句柄); //设置一个资源,返回上一个资源的句柄
::MoveToEx(hDC, x1, y1, NULL);
::LineTo(hDC, x2, y2);
::SelectObject(hDC, obj); //使用完成以后, 资源还原成上一次的

资源释放都是使用 DeleteObject() ,一般会使用一个宏,释放资源并且资源句柄设置为空

#ifndef DELETE_OBJECT
#define DELETE_OBJECT(obj) if (obj) {::DeleteObject(obj); obj=NULL; }
#endif

文字

HFONT 字体句柄
创建函数 CreateFontIndirect(), CreateFont()
对应MFC类 CFont
常用函数
设置字体颜色 SetTextColor()
绘制文字 DrawText(), TextOut()
计算文字长度 GetTextExtentPoint32()
设置背景色 SetBkMode()

刷子

HBRUSH 刷子句柄
创建函数 CreateBrushIndirect, CreateSolidBrush
对应MFC类CBrush
常用函数
SetDCBrushColor() 只修改颜色,不会有新的对象
填充矩形块 FillRect()
绘制长方形 Rectangle()
圆角矩形 RoundRect()
椭圆 Ellipse()
饼图 Pie()
弧线 Arc()
不规则图形 Polygon()

画笔

HPEN 画笔句柄, 用来绘制线段
创建函数 CreatePenIndirect,CreatePen
对应MFC类CPen
常用函数
SetDCPenColor() 修改颜色,不会有新的对象
MoveToEx, LineTo

练习一

行情绘图课程大纲1-基础知识_句柄
在画布绘制上面的图形,
四周边框
切成4个矩形
第1个是平行线,45度角
第2个矩形, 四周间距都是10,
第3个圆,半径为外部矩形长的70%
第4个等边三角形
给矩形,圆, 等边三角形填充红色


举报

相关推荐

0 条评论