windows7实验报告范文 [2020年Windows编程实验报告]
Windows 编程实验报告 一、实验目的和要求
1、了解 CDC 类的使用
2、掌握常用绘图函数的使用
3、学会设置字体
4、掌握画笔和画刷的使用
5、了解不同文本输出函数的用法 二、实验内容
【程序 1】
编写一个单文档的应用程序,在视图窗口中显示一行文本,要求文本颜色为红色,背景色为黄色。
【程序 2】
编写一个单文档的应用程序,在客户区使用不同的画笔和画刷绘制点、折线、曲线、圆角矩形、弧、扇形和多边形等几何图形。
【程序 3】
编写一个单文档的应用程序,在视图窗口中显示 3 个圆,通过使用不同颜色的画笔以及画刷来模拟交通红绿灯。
【程序 4】
编写一个单文档的应用程序,在视图窗口实现一行文本的水平滚动显示,要求每个周期文本为红、黄两种颜色,字体为宋、楷两种字体。
三、实验过程
1 1 、void CTestView::OnDraw(CDC* pDC) {
CTestDoc* pDoc=GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
pDC->SetTextColor(RGB(255,,));
pDC->SetBkColor(RGB(255,255,));
pDC->TextOut(2,3,"红色字体,黄色背景!");
} 结果如图
2 2 、 编写一个应用程序 test ,在客户区使用不同的画笔和画刷绘制点、折线、曲线、圆角矩形、弧、扇形和多边形等几何图形。
同理在 MFC 单文档
OnDraw 函数中加入以下代码。
void CTestView::OnDraw(CDC* pDC) {
CTestDoc* pDoc=GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CPen *penOld,penNew;
CBrush *brushOld,brushNew;
penNew.CreatePen(PS_SOLID,5,RGB(255,,));
pDC->SelectObject(&penNew);
pDC->SetPixel(CPoint(1,1),RGB(255,,));
pDC->MoveTo(15,7);
pDC->LineTo(3,1);
pDC->LineTo(4,24);
pDC->LineTo(2,27);
pDC->MoveTo(5,1);
pDC->Arc(2,2,2,3,2,25,2,2);
pDC->RoundRect(45,1,6,2,3,3); pDC->Arc(1,3,3,5,3,4,2,3);
pDC->MoveTo(3,4);
pDC->LineTo(2,4);
pDC->MoveTo(2,3);
pDC->LineTo(2,4);
POINT pt[6]={{4,3},{5,3},{55,385},{5,46},{4,46},{35,385},};
pDC->Polygon(pt,6); }
实验结果如图
序 编写单文档应用程序 test ,在视图中显示三个圆,通过使用不同颜色的画笔及画刷来模拟交通红绿灯。
在 MFC 单文档
onDraw 函数中编写如下代码 void CTestView::OnDraw(CDC* pDC) {
CTestDoc* pDoc=GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CPen *OldPen,NewPen;
CBrush *OldBrush,NewBrush;
COLORREF
rgb[]={RGB(255,,),RGB(255,255,),RGB(,255,)};
for(int i=;i<3;i++){
NewBrush.CreateSolidBrush(rgb[i]);
OldBrush=pDC->SelectObject(&NewBrush);
pDC->Ellipse(7+1*i,7,15+1*i,15);
NewBrush.DeleteObject();
} } 结果如下
代码如下
void CSy2_4View::OnDraw(CDC* pDC) {
CSy2_4Doc* pDoc=GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CPen *OldPen,NewPen;
CBrush *OldBrush,NewBrush;
COLORREF rgb[]={RGB(255,,),RGB(255,255,),RGB(,255,)};
for(int i=;i<3;i++){
NewBrush.CreateSolidBrush(rgb[i]);
OldBrush=pDC->SelectObject(&NewBrush);
pDC->Ellipse(7+1*i,7,15+1*i,15);
NewBrush.DeleteObject();
} } 编写程序 test ,实现一行文本水平滚动显示,要求每个 周期文本为红、黄两种颜色,字体为宋、楷两种字体。
void CTestView::OnDraw(CDC* pDC) {
CTestDoc* pDoc=GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CFont *OldFont,NewFont;
if(flag%2==)
{
pDC->SetTextColor(RGB(255,,));
NewFont.CreatePointFont(2,"宋体",NULL);
}
if(flag%2==1)
{
pDC->SetTextColor(RGB(255,255,));
NewFont.CreatePointFont(2,"楷体",NULL);
}
OldFont=pDC->SelectObject(&NewFont);
pDC->TextOut(x,5,"漂移");
pDC->SelectObject (OldFont);
SetTimer(1,1,NULL);
NewFont.DeleteObject(); } void CTestView::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
x++;
CClientDC dc(this);
CRect rect;
GetClientRect(&rect);
if(x>=rect.right)
{
x=;
flag++;
}
Invalidate();
CView::OnTimer(nIDEvent); }
四、实验总结
这次的实验做的时间有点长,不过收获还是蛮多的,比如如何设置文本的字体、颜色等属性。其中很关键的是通过第五个实验使我了解到 OnTimer()函数的用法以及对 Invalidate()函数的使用。增加对windows 编程的兴趣。
相关热词搜索: 实验报告 编程 实验 报告 2020年Windows编程实验报告