1. 程式人生 > >MFC繪制直角坐標系

MFC繪制直角坐標系

坐標 mov raw 顏色 恢復 get n) png ldb

 1 void CMyPicoTestDlg::DrawWave(CDC *pDC,CRect &rectPicture)
 2 {
 3 
 4     CPen newPen;                  //用於創建新畫筆
 5     CPen *pOldPen;                  //用於存放舊畫筆
 6     CBrush newBrush;              //用於創建新畫筆
 7     CBrush *pOldBrush;            //用於存放舊畫筆        
 8         newBrush.CreateSolidBrush(RGB(0
,0,0)); //新建黑色畫刷 9 pOldBrush=pDC->SelectObject(&newBrush); //選擇新畫刷並將舊畫刷的指針保存在pOldBrush 10 pDC->Rectangle(rectPicture); //黑色畫刷為繪圖控件,形成黑色背景 11 pDC->SelectObject(pOldBrush);//恢復舊畫刷 12 newBrush.DeleteObject(); //刪除新畫刷 13 14 newPen.CreatePen(PS_SOLID,1,RGB(0,255,0)); //創建實心畫筆,粗度為1,顏色為綠色
15 pOldPen=pDC->SelectObject(&newPen);//選擇新畫筆,並將舊畫筆的指針保存在pOldPen 16 /************************************************************************/ 17 /* 坐標軸 */ 18 /************************************************************************/ 19
//x軸 20 pDC->MoveTo(0,rectPicture.Height()/2); 21 pDC->LineTo(rectPicture.Width(),rectPicture.Height()/2); 22 //y軸 23 pDC->MoveTo(rectPicture.Width()/2,0); 24 pDC->LineTo(rectPicture.Width()/2,rectPicture.Height()); 25 //x軸刻度 26 27 for (int32_t i=rectPicture.Width()/2-10;i>0;i-=10) 28 { 29 pDC->MoveTo(i,rectPicture.Height()/2); 30 pDC->LineTo(i,rectPicture.Height()/2-5); 31 } 32 for (int32_t i=rectPicture.Width()/2+10;i<rectPicture.Width()+1;i+=10) 33 { 34 pDC->MoveTo(i,rectPicture.Height()/2); 35 pDC->LineTo(i,rectPicture.Height()/2-5); 36 37 } 38 //y軸刻度 39 for (int32_t i=rectPicture.Height()/2-10;i>0;i-=10) 40 { 41 pDC->MoveTo(rectPicture.Width()/2,i); 42 pDC->LineTo(rectPicture.Width()/2+5,i); 43 } 44 for (int32_t 45 i=rectPicture.Height()/2+10;i<rectPicture.Height();i+=10) 46 { 47 pDC->MoveTo(rectPicture.Width()/2,i); 48 pDC->LineTo(rectPicture.Width()/2+5,i); 49 } 50 pDC->SelectObject(pOldPen);//恢復舊畫筆 51 newPen.DeleteObject();//刪除新畫筆 52 }

調用

void CMyPicoTestDlg::OnBnClickedButton2()
{
    // TODO: 在此添加控件通知處理程序代碼
    
    CRect rectPicture;   
    m_picDraw.GetClientRect(&rectPicture);   
       //繪制坐標系
    DrawWave(m_picDraw.GetDC(), rectPicture);

}    

技術分享圖片

MFC繪制直角坐標系