|
畫筆畫刷和字體:
第一步:實例化。如,CPen pen;
第二步:創(chuàng)建對象。如 pen.crate……
第三步:獲取 dc指針:dc->selectobject(&pen);
/***************** 常用函數(shù)*******************/
一.關(guān)于字體:
字體的創(chuàng)建(粘貼備用):
CFont fon;
fon.CreateFontA(100,0,900,0,FW_BOLD,false,false,false,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,"楷體_GB2312");
dc->SelectObject(&fon);
dc->SetTextColor(RGB(255,0,255));
dc->SetBkMode(TRANSPARENT);//無背景
dc->TextOutA(200,400,"中國人民銀行");
二.畫弧畫餅
首先創(chuàng)建畫刷;
dc->arc();畫弧
dc->pie();畫餅
注意,以上兩個函數(shù)都有?個int型參數(shù)。
- /****************獲取客戶去*********************/
- RECT rec; //實例化RECT
- GetClientRect( &rec);//CWnd
- CDC *dc=GetDC();
- dc->Rectangle(0,0,rec.right,rec.bottom);//RECT的使用。這兒完成在客戶去邊沿畫一個矩形
-
- /**********徐老師做的一個比例圖**************/
- void Cpro003View::drawpie(float angle1,float angle2,int xx1,int yy1,int r,COLORREF co)
- {
- CDC *dc=GetDC();
- CPen pen;
- pen.CreatePen(PS_SOLID,1,co);
- dc->SelectObject(&pen);
- CBrush bru;
- bru.CreateSolidBrush(co);
- dc->SelectObject(&bru);
-
- float x3=xx1+r*cos(angle1*3.14159/180.0);
- float y3=yy1-r*sin(angle1*3.14159/180.0);
- float x4=xx1+r*cos(angle2*3.14159/180.0);
- float y4=yy1-r*sin(angle2*3.14159/180.0);
-
-
- dc->Pie(xx1-r,yy1-r,xx1+r,yy1+r,x3,y3,x4,y4);
- ReleaseDC(dc);//Release掉CDC就不需要再bru.deleteobject().這兒需要注意。
- }
- void Cpro003View::OnLButtonDown(UINT nFlags, CPoint point)
- {
- // TODO: 在此添加消息處理程序代碼和/或調(diào)用默認值
- float arr[]={0.1,0.2,0.3,0.25,0.1,0.05};
- COLORREF arrco[]={RGB(255,0,0),RGB(0,0,255),RGB(255,255,0),RGB(0,255,0),RGB(255,0,255),RGB(0,255,255)};
- ///如何獲取客戶區(qū)尺寸
- RECT rec;
- //LPRECT lpRect
- //LPRECT RECT *
- GetClientRect( &rec);//CWnd
-
- CDC *dc=GetDC();
- dc->Rectangle(0,0,rec.right,rec.bottom);
- drawpie(0,arr[0]*360.0,400,300,200,arrco[0]);
- drawpie(arr[0]*360.0,arr[1]*360.0+arr[0]*360.0,400,300,200,arrco[1]);
- drawpie(arr[1]*360.0+arr[0]*360.0,arr[2]*360.0+arr[1]*360.0+arr[0]*360.0,400,300,200,arrco[2]);
- drawpie(arr[2]*360.0+arr[1]*360.0+arr[0]*360.0,arr[3]*360.0+arr[2]*360.0+arr[1]*360.0+arr[0]*360,400,300,200,arrco[3]);
- drawpie(arr[3]*360.0+arr[2]*360.0+arr[1]*360.0+arr[0]*360,arr[4]*360.0+arr[3]*360.0+arr[2]*360.0+arr[1]*360+arr[0]*360,400,300,200,arrco[4]);
- drawpie(arr[4]*360.0+arr[3]*360.0+arr[2]*360.0+arr[1]*360+arr[0]*360,360,400,300,200,arrco[5]);//自己寫的函數(shù)記得在視圖類頭文件聲明
-
- dc->MoveTo(0,600);
- dc->LineTo(700,600);
- for(int i=0;i<700;i+=10)
- {
- if(i%100!=0)
- {
- dc->MoveTo(i,600-5);
- dc->LineTo(i,600+5);
- }
- else
- {
- dc->MoveTo(i,600-8);
- dc->LineTo(i,600+8);
- }
- }
- ReleaseDC(dc);
-
- // drawpie(arr[1]*360.0,arr[2]*360.0,400,300,200,arrco[2]);
- // drawpie(arr[2]*360.0,arr[3]*360.0,400,300,200,arrco[3]);
- // drawpie(arr[3]*360.0,arr[4]*360.0,400,300,200,arrco[4]);
- // drawpie(arr[4]*360.0,arr[5]*360.0,400,300,200,arrco[5]);
- //drawpie(0,30,400,300,200,RGB(255,0,0));
- /*for(int i=0;i<6;i++)
- {
- if(i<5)
- drawpie(arr[i]*360.0,arr[i+1]*360.0,400,300,200,arrco[i]);
- else
- drawpie(arr[i]*360.0,arr[0]*360.0,400,300,200,arrco[i]);
- }*/
- /////如何獲取客戶區(qū)尺寸
- //RECT rec;
- ////LPRECT lpRect
- ////LPRECT RECT *
- //GetClientRect( &rec);
- CView::OnLButtonDown(nFlags, point);
- }
-
復(fù)制代碼
|
|