⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 第七章1.txt

📁 本书在复习C++基础知识后
💻 TXT
字号:
void CEx_GDIView::OnDraw(CDC* pDC)
{
		CEx_GDIDoc* pDoc = GetDocument();
		ASSERT_VALID(pDoc);
	int	data[20] = {19,21,32,40,41,39,42,35,33,23,21,20,24,11,9,19,22,32,40,42};
	CRect	rc;
	GetClientRect(rc);					// 获得客户区的大小
	rc.DeflateRect(50,50);					// 将矩形大小沿x和y方向各减小50
	int	gridXnums = 10, gridYnums = 8;
	int	dx = rc.Width()/gridXnums;
	int	dy = rc.Height()/gridYnums;
	CRect gridRect(rc.left,rc.top,	rc.left+dx*gridXnums,rc.top+dy*gridYnums); // 调整矩形大小
CPen	  gridPen(0,0,RGB(0,100,200));
	CPen*  oldPen = pDC->SelectObject(&gridPen);
	for (int i=0; i<=gridXnums; i++)			// 绘制垂直线
	{
		pDC->MoveTo(gridRect.left+i*dx,gridRect.bottom);
		pDC->LineTo(gridRect.left+i*dx,gridRect.top);
	}
	for (int j=0; j<=gridYnums; j++)			// 绘制水平线
	{
		pDC->MoveTo(gridRect.left,gridRect.top+j*dy);
		pDC->LineTo(gridRect.right,gridRect.top+j*dy);
	}
	pDC->SelectObject(oldPen);				// 恢复原来画笔
	gridPen.Detach();	// 将画笔对象与其构造的内容分离,以便能再次构造画笔
	gridPen.CreatePen(0,0,RGB(0,0,200));		// 重新创建画笔
	pDC->SelectObject(&gridPen);
	CBrush gridBrush(RGB(255,0,0));			// 创建画刷
	CBrush* oldBrush = pDC->SelectObject(&gridBrush);
	POINT	ptRect[4] = {{-3,-3},{-3,3},{3,3},{3,-3}}, ptDraw[4];
	int		deta;
	POINT	pt[256];
	int nCount = 20;
	deta = gridRect.Width()/nCount;
	for (i=0; i<nCount; i++)
	{
		pt[i].x = gridRect.left+i*deta;
		pt[i].y = gridRect.bottom-(int)(data[i]/60.0*gridRect.Height());
		for (j=0; j<4; j++)
		{
			ptDraw[j].x = ptRect[j].x+pt[i].x;
			ptDraw[j].y = ptRect[j].y+pt[i].y;
		}
		pDC->Polygon(ptDraw,4);				// 绘制小方块
	}
	pDC->Polyline(pt,nCount);					// 绘制折线
	// 恢复原来绘图属性
	pDC->SelectObject(oldPen);
	pDC->SelectObject(oldBrush);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -