收藏 分销(赏)

文本输出绘图及菜单制作.pptx

上传人:人****来 文档编号:3202760 上传时间:2024-06-25 格式:PPTX 页数:16 大小:87.70KB
下载 相关 举报
文本输出绘图及菜单制作.pptx_第1页
第1页 / 共16页
文本输出绘图及菜单制作.pptx_第2页
第2页 / 共16页
文本输出绘图及菜单制作.pptx_第3页
第3页 / 共16页
文本输出绘图及菜单制作.pptx_第4页
第4页 / 共16页
文本输出绘图及菜单制作.pptx_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、MFC的基本层次结构的基本层次结构l见见MSDN:MFC Hierarchy Char第1页/共16页一、文本输出一、文本输出l设备环境的调用和释放设备环境的调用和释放在在MFC类库中,类库中,CDC类是定义设备环境对象的类,类是定义设备环境对象的类,所有绘图函数都在所有绘图函数都在CDC类中定义。类中定义。CDC类是所有其类是所有其他他MFC设备环境的基类。设备环境的基类。在在Windows程序中输出文字(或数据)时,首先要程序中输出文字(或数据)时,首先要调用该输出对象的设备环境,然后运行相应的调用该输出对象的设备环境,然后运行相应的CDC成员函数,最后需要释放设备环境。成员函数,最后需要

2、释放设备环境。调用和释放设备环境:调用和释放设备环境:CWnd类的成员函数类的成员函数GetDC和和ReleaseDC(pDC)。第2页/共16页一、文本输出一、文本输出l文字列输出的基本操作文字列输出的基本操作CDC:TextOut:Writes a character string at the specified location using the currently selected font.CDC:SetTextColor:CDC:SetBkMode:设置背景模式(透明设置背景模式(透明/不透明)不透明)CDC:SetBkColor:文字背景颜色设置。文字背景颜色设置。第3页/共

3、16页一、文本输出一、文本输出l数据输出数据输出需要向屏幕输出数据时,通常把数据进行文字列化需要向屏幕输出数据时,通常把数据进行文字列化后再执行后再执行CDC:TextOut函数。数据的文字列化由函数。数据的文字列化由windows API 提供的函数来完成。提供的函数来完成。wsprintf 整数数据文字列化;整数数据文字列化;sprintf 浮点数数据文字列化;浮点数数据文字列化;Format 浮点数数据文字列化(可设置有效位数);浮点数数据文字列化(可设置有效位数);第4页/共16页一、文本输出一、文本输出l数据输出数据输出例例char buf20;CString sc;int x1=2

4、0,y1=80;double x2,y2;x2=30.5;y2=0.8wsprintf(buf,”(%d,%d)”,x1,x2);sprintf(buf,”(%f,%f)”,x2,y2);pDC-TextOut(x1,y1,buf,strlen(buf);pDC-TextOut(110,80,buf,strlen(buf);sc.Format(“(%5.2f,%5.2f)”,x2,y2);pDC-TextOut(370,80,sc);第5页/共16页一、文本输出一、文本输出l字体设定字体设定使用使用CFont类的成员函数类的成员函数CreatePointFont()CFont newFont;

5、CFont*pOldFont;newFont.CreatPointFont(180,”Arial”,pDC);pOldFont=pDC-SelectObject(&newFont);pDC-SelectObject(pOldFont);使用使用CFont类类CreateFont()第6页/共16页二、绘图二、绘图lCDC类的主要绘图成员函数:类的主要绘图成员函数:CDC:SetPixel 画点画点CDC:MoveTo/CDC:LineToCDC:Ellipse 画椭圆(用当前设备刷子填充内部,画椭圆(用当前设备刷子填充内部,用当前设备笔画边线)用当前设备笔画边线)CDC:FillRect 画矩

6、形(只填充不画边线画矩形(只填充不画边线0CDC:Rectangle 画矩形(用当前设备刷子填充内部,画矩形(用当前设备刷子填充内部,用当前设备笔画边线)用当前设备笔画边线)CDC:Polygon 画多边形(画多边形(同上同上)CDC:Arc 画圆弧画圆弧第7页/共16页二、绘图二、绘图l坐标设定(映射模式):坐标设定(映射模式):CDC:SetMapMode()设定映射模式设定映射模式CDC:SetViewportOrg()设定坐标系原点。设定坐标系原点。例:例:CRect rect;GetClientRect(&rect);pDC-SetMapMode(MM_LOMETRIC);pDC-S

7、etViewportOrg(int(rect.right/2),int(rect.bottom/2);第8页/共16页二、绘图二、绘图l画笔的使用:画笔的使用:VC+中的画笔用来绘制直线、曲线或填充图形的边中的画笔用来绘制直线、曲线或填充图形的边线。在使用画笔之前必须先创建或选择画笔对象。线。在使用画笔之前必须先创建或选择画笔对象。例:例:CPen myPen;CPen*pOldPen;myPen.CreatePen(PS_SOLID,1,RGB(255,0,0);pOldPen=pDC-SelectObject(&myPen);pDC-SelectObject(pOldPen);myPen.

8、DeleteObject();第9页/共16页二、绘图二、绘图l刷子的使用:刷子的使用:VC+中的刷子用来给图形内部着色。在使用刷子之中的刷子用来给图形内部着色。在使用刷子之前必须先创建或选择刷子对象。前必须先创建或选择刷子对象。例:例:CBrush myBrush;CBrush*pOldBrush;myBrush.CreateSolidBrush(RGB(255,0,0);pOldBrush=pDC-SelectObject(&myBrush);pDC-SelectObject(pOldBrush);myBrush.DeleteObject();第10页/共16页三、普通菜单的制作三、普通菜

9、单的制作l删除应用程序中多余的菜单项,只保留文件、删除应用程序中多余的菜单项,只保留文件、编辑、帮助三项,增加以下项目编辑、帮助三项,增加以下项目(使用使用Class Wizard):菜单名菜单名对象对象ID消息消息消息处理函数消息处理函数 计算项目计算项目无无正弦正弦ID_SINCOMMANDCMyVC3View:OnSin()余弦余弦ID_COSCOMMAND:OnCos()正弦余弦乘积正弦余弦乘积ID_SINCOSCOMMAND:OnSincos()第11页/共16页三、普通菜单的制作三、普通菜单的制作l在相应的函数中添加代码:在相应的函数中添加代码:void CMyVC3View:On

10、Sin()/TODO:Add your command handler code herexm0=1;InvalidateRect(NULL,FALSE);第12页/共16页三、菜单被选标记的制作三、菜单被选标记的制作l增加以下菜单项:增加以下菜单项:菜单名菜单名对象对象ID消息消息消息处理函数消息处理函数 曲线线宽曲线线宽无无线宽线宽=2ID_CX1COMMANDCMyVC3View:OnCx1()线宽线宽=4ID_CX2COMMAND:OnCx2()线宽线宽=7ID_CX3COMMAND:OnCx3()第13页/共16页三、普通菜单的制作三、普通菜单的制作l在相应的函数中添加代码在相应的函

11、数中添加代码,设置线宽:设置线宽:void CMyVC3View:OnCx1()/TODO:Add your command handler code herexz0=2;InvalidateRect(NULL,FALSE);第14页/共16页三、菜单被选标记的制作三、菜单被选标记的制作l增加增加UPDATE_COMMAND_UI消息处理函数框消息处理函数框架:架:菜单名菜单名对象对象ID消息消息消息处理函数消息处理函数 曲线线宽曲线线宽无无线宽线宽=2ID_CX1UPDATE_COMMAND_UICMyVC3View:OnUpdateCx1()线宽线宽=4ID_CX2UPDATE_COMMAND_UI:OnUpdateCx2()线宽线宽=7ID_CX3UPDATE_COMMAND_UI:OnUpdateCx3()第15页/共16页三、普通菜单的制作三、普通菜单的制作l在相应的函数中添加代码在相应的函数中添加代码,设置菜单选中标记:设置菜单选中标记:void CMyVC3View:OnUpdateCx3(CCmdUI*pCmdUI)/TODO:Add your command update UI handler code herepCmdUI-SetCheck(xz0=7)?1:0);pCmdUI-Enable(xm0)?TRUE:FALSE);第16页/共16页

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 考试专区 > 中考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服