计算机图形学实验报告—图形与文本(2)
【程序4:】 编写一个单文档的应用程序,在视图窗口中显示3个圆,通过使用不同颜色的画笔以及画刷来模拟交通红绿灯。
关键代码:
void CTest2View::OnDraw(CDC* pDC) { CTest2Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here CPen *PenOld,PenNew; CBrush *BrushOld,BrushNew;
PenOld = (CPen *) pDC->SelectStockObject(BLACK_PEN);//使用库存黑色画笔 BrushNew.CreateSolidBrush(RGB(255,0,0));//红色 BrushOld=pDC->SelectObject(&BrushNew); CRect rect1(0,0,100,100); pDC->Ellipse(&rect1);
BrushNew.DeleteObject();//每次使用完新画刷,释放掉新画刷 BrushNew.CreateSolidBrush(RGB(255,255,0));//黄色 pDC->SelectObject(&BrushNew); CRect rect2(0,100,100,200); pDC->Ellipse(&rect2); BrushNew.DeleteObject();
BrushNew.CreateSolidBrush(RGB(0,255,0));//绿色 pDC->SelectObject(&BrushNew); CRect rect3(0,200,100,300); pDC->Ellipse(&rect3); BrushNew.DeleteObject(); //恢复系统默认的GDI对象 pDC->SelectObject(PenOld); pDC->SelectObject(BrushOld); }
结果截图:
5
【程序5:】 编写一个单文档的应用程序,在视图窗口实现一行文本的水平滚动显示,要求每个周期文本为红、黄两种颜色,字体为宋、楷两种字体。
关键代码: public:
bool flag;//用于标记当前文本颜色字体状态 int x; //用于指定文本的起始位置 //初始化变量
CSy2_5View::CSy2_5View() {
x=0;//文字滚动起点 flag=1;//标记当前文字出于哪种状态,初始定为宋体红字 // TODO: add construction code here }
void CSy2_5View::OnDraw(CDC* pDC) { CSy2_5Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here SetTimer(0,100,NULL);//启动定时器,每隔0.1秒执行一次任务 CString outString=\滚动的文字\ COLORREF strRgb[]={RGB(255,0,0),RGB(255,255,0)};
6
}
pDC->SetBkMode(TRANSPARENT);//设置背景模式 CRect r1;
GetClientRect(&r1);//获取当前客户区的矩形大小赋值给r1 CFont *OldFont,NewFont; if( flag == 1) {
NewFont.CreatePointFont(200,\宋体\pDC->SetTextColor(strRgb[0]);
OldFont=pDC->SelectObject(&NewFont); pDC->TextOut(0+x,0,outString); pDC->SelectObject(OldFont); NewFont.DeleteObject();
if(x>=r1.right) //如果大于视图边界就切换文本颜色和字体属性,令flag=0; { x=0; flag=0; } }
if( flag == 0) { }
NewFont.CreatePointFont(200,\楷体\pDC->SetTextColor(strRgb[1]);
OldFont=pDC->SelectObject(&NewFont); pDC->TextOut(0+x,0,outString); pDC->SelectObject(OldFont); NewFont.DeleteObject(); if(x>=r1.right) { x=0; flag=1; }
//定义定时器
void CSy2_5View::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default this->Invalidate();//重绘视图窗口 x+=10; CView::OnTimer(nIDEvent); }
结果截图:
7
四、实验总结 本次实验熟悉了Windows编程的基本操作,并且初步掌握了利用GDI绘制图形和文本的方法,是一次很有意义的上机训练。
8
…… 此处隐藏:217字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [互联网资料]2022年厦门大学机电工程系824机械设计
- [互联网资料]东南大学2022年硕士研究生拟录取名单公
- [互联网资料]能源调研报告(精选多篇)
- [互联网资料]初三英语下学期 中考英语 语法填空训练
- [互联网资料]2022内蒙古选调生行测常识备考:新事物
- [互联网资料]自驾必备!在新西兰租什么样的车自驾游
- [互联网资料]佛教素食菜谱44页未完
- [互联网资料]盈利能力分析外文翻译
- [互联网资料]2022年南昌航空大学音乐学院736马克思
- [互联网资料]优选外贸跟单实习报告总结(精品版)
- [互联网资料]银行新员工培训总结
- [互联网资料]2_year_visa_new_guidance_190316
- [互联网资料]天津市五校宝坻一中静海一中杨村一中芦
- [互联网资料]2007--2008学年第一学期高三数学宁波市
- [互联网资料]Chromatic framework for vision in ba
- [互联网资料]幼儿园大班上学期美术教案《心愿树》含
- [互联网资料]2022年华中农业大学信息学院820微型计
- [互联网资料]硬盘坏道的表现 __硬盘使用久了
- [互联网资料]江苏省2016年会计从业资格考试《会计基
- [互联网资料]公共场所卫生监督试卷全解
- 高级英语第一册所有修辞方法及例子总结
- 综合交通枢纽规划与城市发展
- 沃尔玛的企业文化案例分析
- 美国Thanksgiving Day 感恩节 介绍
- PEP六年级英语上册Unit6How do you fee
- 最齐全的中国大型商场购物中心名单
- 数据结构实验报告八—哈夫曼编译码
- 杭州市余杭区人民政府(通知)
- 七年级语文成语运用专项训练
- 微观经济学第三章 消费者行为 课后习题
- 对_钱学森之问_的思考
- Excel_三级联动_下拉菜单
- 办公用品需求计划申请表
- 对外汉语教材必须要知道的发展史
- 挑战杯大学生学术科技作品竞赛作品申报
- 举办民办教育培训机构应具备下列条件
- 太阳能路灯项目设计方案
- 2013年八年级上最新人教版新教材Unit3I
- 【历史】 6-4 《近代科学之父牛顿》 课
- 高中生物《第四章 第二节 探讨加酶洗衣




