void CColligateDlg::OnDrawWheel(CDC &pDC)
{ CDC MemDC;
COLORREF WhiteColor = RGB(0,0,0);
CBrush WhiteBrush(WhiteColor);
CPen Whitepen(PS_SOLID,1,RGB(255,0,0));
char tmp[10];
MemDC.CreateCompatibleDC(&pDC); pDC.SelectObject(&WhiteBrush);
pDC.SelectObject(&Whitepen);
//--------------------------------------------------舵角角度指针绘制---------------------------------------------
double a = 90 - counter/2;
a *= PI / 720.0;
double b = PI/2 - a;
POINT points4[4] =
{
{391-5*cos(4*b+PI*3/2),599-5*sin(4*b+PI*3/2)},//左 // 688 , 500
{391+80*cos(4*a),599-80*sin(4*a)}, //上
{391+5*cos(4*b+PI*3/2),599+5*sin(4*b+PI*3/2)},//右
{391-5*cos(4*b+PI*3/2),599-5*sin(4*b+PI*3/2)}//左
}; POINT points5[4] =
{
{391-5*cos(4*b+PI*3/2),599-5*sin(4*b+PI*3/2)},
{391 -10*cos(4*a),599+10*sin(4*a)},
{391+5*cos(4*b+PI*3/2),599+5*sin(4*b+PI*3/2)},
{391-5*cos(4*b+PI*3/2),599-5*sin(4*b+PI*3/2)}
}; pDC.Polygon(points4,4);
pDC.Polygon(points5,4); //-------------------------------------舵角输出数据值-----------------------------------------------------
CFont myfont;
myfont.CreateFont(30,
0,
0,
0,
FW_BOLD,
FALSE,
FALSE,
0,
ANSI_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
PROOF_QUALITY,
DEFAULT_PITCH | FF_SWISS,
"Arial");
CFont *oldFont = pDC.SelectObject(&myfont);
COLORREF Pcolor = RGB(196,7,3);
COLORREF oldcolor = pDC.SetTextColor(Pcolor);
pDC.SetBkMode(TRANSPARENT);
sprintf(tmp,"%10.0f%",fabs(counter/1.8));
pDC.TextOut(325,615,tmp);
//------------------------------------------水深---------------------------------------------------------------
COLORREF GreenColor = RGB(228,239,243);
CBrush Green(GreenColor);
CPen GreenPen;
GreenPen.CreatePen(PS_SOLID,3,GreenColor);
pDC.SetTextColor(GreenColor);
pDC.SelectObject(GreenPen);
pDC.SelectObject(&Green);
pDC.RoundRect(CRect(823,342,938,452 + counter),CPoint(5,5)); pDC.BitBlt(0,0,1024,768,&MemDC,0,0,SRCCOPY);
}
{ CDC MemDC;
COLORREF WhiteColor = RGB(0,0,0);
CBrush WhiteBrush(WhiteColor);
CPen Whitepen(PS_SOLID,1,RGB(255,0,0));
char tmp[10];
MemDC.CreateCompatibleDC(&pDC); pDC.SelectObject(&WhiteBrush);
pDC.SelectObject(&Whitepen);
//--------------------------------------------------舵角角度指针绘制---------------------------------------------
double a = 90 - counter/2;
a *= PI / 720.0;
double b = PI/2 - a;
POINT points4[4] =
{
{391-5*cos(4*b+PI*3/2),599-5*sin(4*b+PI*3/2)},//左 // 688 , 500
{391+80*cos(4*a),599-80*sin(4*a)}, //上
{391+5*cos(4*b+PI*3/2),599+5*sin(4*b+PI*3/2)},//右
{391-5*cos(4*b+PI*3/2),599-5*sin(4*b+PI*3/2)}//左
}; POINT points5[4] =
{
{391-5*cos(4*b+PI*3/2),599-5*sin(4*b+PI*3/2)},
{391 -10*cos(4*a),599+10*sin(4*a)},
{391+5*cos(4*b+PI*3/2),599+5*sin(4*b+PI*3/2)},
{391-5*cos(4*b+PI*3/2),599-5*sin(4*b+PI*3/2)}
}; pDC.Polygon(points4,4);
pDC.Polygon(points5,4); //-------------------------------------舵角输出数据值-----------------------------------------------------
CFont myfont;
myfont.CreateFont(30,
0,
0,
0,
FW_BOLD,
FALSE,
FALSE,
0,
ANSI_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
PROOF_QUALITY,
DEFAULT_PITCH | FF_SWISS,
"Arial");
CFont *oldFont = pDC.SelectObject(&myfont);
COLORREF Pcolor = RGB(196,7,3);
COLORREF oldcolor = pDC.SetTextColor(Pcolor);
pDC.SetBkMode(TRANSPARENT);
sprintf(tmp,"%10.0f%",fabs(counter/1.8));
pDC.TextOut(325,615,tmp);
//------------------------------------------水深---------------------------------------------------------------
COLORREF GreenColor = RGB(228,239,243);
CBrush Green(GreenColor);
CPen GreenPen;
GreenPen.CreatePen(PS_SOLID,3,GreenColor);
pDC.SetTextColor(GreenColor);
pDC.SelectObject(GreenPen);
pDC.SelectObject(&Green);
pDC.RoundRect(CRect(823,342,938,452 + counter),CPoint(5,5)); pDC.BitBlt(0,0,1024,768,&MemDC,0,0,SRCCOPY);
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货