void CStartMonitorDlg::OnPaint(){ CPaintDC dc(this); ////////////////////////////////////////////////////////////////////////// //*******畫座標圖******* ////////////////////////////////////////////////////////////////////////////CRect rect;GetDlgItem(IDC_DIAMETER)->GetClientRect(rect);rect.Width();rect.Height();//用rect.Width()替代nxLength,rect.Height()替代nyLength int nxLength=400; int nyLength=300; int nxDivisionNumber = 7; int nyDivisionNumber = 6; int nMeshLength; CString str; int i; CWnd *pWnd = GetDlgItem(IDC_DIAMETER_TIME_CURVE); CDC* pDC = pWnd->GetDC(); pWnd->Invalidate(); pWnd->UpdateWindow(); pDC->Rectangle(0,0,nxLength,nyLength); CPen* pPenRed = new CPen; //建立畫筆對象 pPenRed->CreatePen(PS_SOLID, 1, RGB(255,0,0)); //紅色畫筆 CPen* pPenGreen = new CPen; //建立畫筆對象 pPenGreen->CreatePen(PS_SOLID, 1, RGB(0,255,0));//綠色畫筆 CPen* pPenBlue = new CPen; //建立畫筆對象 pPenBlue->CreatePen(PS_DOT, 1, RGB(0,0,255)); //藍色畫筆 CPen* pPenBlack = new CPen; //建立畫筆對象 pPenBlack->CreatePen(PS_SOLID, 1, RGB(0,0,0)); //黑色畫筆 //選中黑色畫筆,並儲存當前畫筆 CGdiObject* pOldPen = pDC->SelectObject(pPenBlack); pDC->MoveTo(30,10); //繪製座標軸 pDC->LineTo(30,nyLength-30); //垂直軸 pDC->LineTo(nxLength-10,nyLength-30); //水平軸 //橫座標箭頭 pDC->MoveTo(nxLength-10-10,nyLength-30-3); pDC->LineTo(nxLength-10,nyLength-30); pDC->LineTo(nxLength-10-10,nyLength-30+3); pDC->LineTo(nxLength-10-10,nyLength-30-3); //縱座標箭頭 pDC->MoveTo(27,20); pDC->LineTo(30,10); pDC->LineTo(33,20); pDC->LineTo(27,20); //橫座標數字 nMeshLength = (nxLength-40)/(nxDivisionNumber+1); for (i=0; i<nxDivisionNumber+1; i++){ str.Format("%d",i); pDC->TextOut(27+i*nMeshLength, nyLength-27, str); } //橫座標標識 str.Format("時間"); pDC->TextOut(nxLength-33,nyLength-27,str); //縱座標數字 nMeshLength = (nyLength-40)/(nyDivisionNumber+1); for (i=0; i<nyDivisionNumber+1; i++){ str.Format("%d",i*25); pDC->TextOut(3, nyLength-40-i*nMeshLength, str); } //縱座標標識 str.Format("直徑"); pDC->TextOut(1,3,str); //網格線 pDC->SelectObject(pPenBlue); nMeshLength = (nxLength-40)/(nxDivisionNumber+1); for (i=1; i<nxDivisionNumber+2; i++){ pDC->MoveTo(30+i*nMeshLength,nyLength-30); pDC->LineTo(30+i*nMeshLength,10); } nMeshLength = (nyLength-40)/(nyDivisionNumber+1); for (i=1; i<nyDivisionNumber+2; i++){ pDC->MoveTo(30,nyLength-30-i*nMeshLength); pDC->LineTo(nxLength-10,nyLength-30-i*nMeshLength); } ////////////////////////////////////////////////////////////////////////// //*******畫生長曲線圖******* ////////////////////////////////////////////////////////////////////////// //恢複以前的畫筆 pDC->SelectObject(pOldPen); delete pPenRed; delete pPenGreen; delete pPenBlue; delete pPenBlack;}