WEB开发网
开发学院软件开发VC 用VC开发股票分析软件(三) 阅读

用VC开发股票分析软件(三)

 2008-11-20 19:36:16 来源:WEB开发网   
核心提示:void CStockView::OnDraw(CDC* pDC){CStockDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);//以下程序用来画一根阳K线(相对复杂点纺锤线:有上影线和下影线的实阳线),//为了说明方便,用VC开发股票分析软件(三),数字都用的整形,便于开发,

void CStockView::OnDraw(CDC* pDC) 
{
  CStockDoc* pDoc = GetDocument();
  ASSERT_VALID(pDoc);
  //以下程序用来画一根阳K线(相对复杂点纺锤线:有上影线和下影线的实阳线),
  //为了说明方便,数字都用的整形,便于开发。
  CClientDC mjClientDC(this) ;
  OnPrepareDC(&mjClientDC);
  CRect rc;
  GetClientRect(&rc);
  CBrush br(RGB(0,0,0));
  pDC->FillRect(&rc,&br);//背景变成黑色
  CBrush *pBrush;
  CBrush mjSunBrush; 
  CPen *pPen;
  CPen mjSunPen ;
  mjSunBrush.CreateSolidBrush(RGB(255,0,0));//红色
  pBrush = mjClientDC.SelectObject(&mjSunBrush);//取得刷子指针
  mjSunPen.CreatePen(PS_SOLID,1,RGB(255,0,0));
  pPen = mjClientDC.SelectObject(&mjSunPen);//取得画笔指针
  int ClosePrice = 97 ;  // 调整不同的收盘价,图形会有变化,画阴线判段一下,RGB成绿色就可以了。
  int BeginPrice = 90 ;
  int MinPrice = 85;
  int MaxPrice = 99;
  int x = 300;int y = 400 ;//阳线的起始位置
  int KlineWidth = 10 ;
  int MidLine = KlineWidth / 2 ; //中心画线位置
  //K线实体只需要两个点座标,就是左下角和右上角的两个点
  int x1 = x ; 
  int y1 = y - (BeginPrice-MinPrice) ;//第一个点坐标,MFC是从上往下画的(0,0)是左上角第一个点。
  int x2 = x + KlineWidth;
  int y2 = y - ((BeginPrice-MinPrice) + (ClosePrice - BeginPrice));
  mjClientDC.Rectangle(CRect(x1,y1,x2,y2));//K线实体画完
  //画影线
  int x3 = x1 + MidLine ;
  int y3 = y - (MaxPrice-MinPrice) ; 
  int x4 = x3 ;
  int y4 = y ;//中线点坐标
  mjClientDC.MoveTo(x3,y3);
  mjClientDC.LineTo(x3,y4);
  ReleaseDC(pDC);
  // TODO: add draw code for native data here
}
画K线,实际就是矩形+线条的组合。这个例子只说了画阳线的方法,可以类推

Tags:VC 开发 股票

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接