第三章MFC编程

第三章MFC编程

ID:44965412

大小:391.00 KB

页数:57页

时间:2019-11-06

第三章MFC编程_第1页
第三章MFC编程_第2页
第三章MFC编程_第3页
第三章MFC编程_第4页
第三章MFC编程_第5页
资源描述:

《第三章MFC编程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第三章MFC编程MFC(MicrosoftFoundationClass)MFC类库是一个在应用程序中使用的相互关联的C++类的集合。MFC的本质就是一个包含了许多已经定义好的对象的类库。MFC中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序。#includeclassCMyWnd:publicCFrameWnd{public:CMyWnd(){}protected:afx_msgvoidOnPaint();DECLARE_MESSAGE_MAP()};BEGIN_MESSAGE

2、_MAP(CMyWnd,CFrameWnd)ON_WM_PAINT()END_MESSAGE_MAP()voidCMyWnd::OnPaint(){CPaintDCdc(this);dc.SelectStockObject(LTGRAY_BRUSH);dc.Ellipse(150,50,200,150);dc.SelectStockObject(DKGRAY_BRUSH);dc.RoundRect(50,120,100,200,15,15);dc.SelectStockObject(HOLLOW_BRUSH);dc.Pie(250,50,300,100,

3、250,50,300,50);}设计框架窗口类从CFrameWnd类派生声明消息处理函数声明动态消息映射宏消息映射宏WM_PAINT消息处理函数处理WM_PAINT消息创建设备环境类对象用设备环境类对象的成员函数作图classCMyApp:publicCWinApp{public:BOOLInitInstance();};BOOLCMyApp::InitInstance(){CMyWnd*pFrame=newCMyWnd;pFrame->Create(0,_T("My_Windows"));pFrame->ShowWindow(m_nCmdShow);t

4、his->m_pMainWnd=pFrame;returnTRUE;}CMyAppThisApp;设计应用程序类从CWinApp类派生重载InitInstance函数新建一个框架窗口对象创建一个框架窗口显示框架窗口保存框架窗口指针新建一个应用程序类对象图形设备接口图形设备接口(graphicsdeviceinterface,GDI)是Windows提供的一个抽象接口,用来完成所有图形的输出工作,GDI为Windows提供了所有的基本绘图函数。在GDI函数中,需要使用设备环境来作为一个参数。GDI通过调用相应设备的驱动程序来实现函数的调用。这种机制实现了硬

5、件无关性,即无需自己编写底层驱动程序代码,因为Windows本身已经包含了这些驱动程序。设备环境在Windows程序中,并不是把图形直接画到硬件上去,而是使用一个与硬件无关的设备环境(devicecontext,DC)来表示逻辑的设备。Windows程序作图流程绘图模式绘图的最终效果,如前景色、背景色等,可以通过设置绘图模式来进行改变。绘图模式实际上是指画笔的颜色以什么样的方式填充在已经有显示的设备上,两者怎样相结合。绘图模式绘图设定R2_BLACK用黑色笔绘图R2_WHITE用白色笔绘图R2_NOP用无色笔绘图R2_NOT用与背景色相反的颜色绘图R2_

6、NOTCOPYPEN用与画笔色相反的颜色绘图R2_COPYPEN用画笔色绘图R2_XORPEN对画笔色和背景色作异或运算GDI坐标系GDI支持两种类型的坐标系,即逻辑坐标系和设备坐标系。设备坐标系设备坐标系是以像素为单位来表示的,设备坐标的X轴向右为正,Y轴向客户区坐标系以窗口客户区左上角为原点(0,0),下为正,坐标原点(0,0)不限定在设备显示区域的左上角。根据设备坐标系的原点位置和用途可将其分为屏幕坐标系、窗口坐标系和客户区坐标系三种。窗口坐标系以窗口左上角为坐标原点(0,0)屏幕坐标系以显示器屏幕左上角为原点(0,0)客户区坐标系以窗口客户区左上

7、角为原点(0,0)逻辑坐标是系统用作记录的坐标系,它不针对任何具体的设备类型,是面向设备环境的。在实际显示图形对象时,Windows系统将根据坐标设置方式(映射模式),把逻辑坐标转换为设备坐标。逻辑坐标系的映射模式可分为8种,它们的坐标特性如表3.2所示。所有映射模式的坐标原点均在设备输出区域(如客户区或打印区)的左上角。可以使用CDC::SetMapMode()函数设置新的映射模式;使用CDC::GetMapMode()函数获取当前的映射模式。坐标之间的转换在具体的编程过程中,需要根据情况在3种设备坐标之间、设备坐标与逻辑坐标之间进行相互转换。MFC提

8、供了CWnd::ClientToScreen()、CWnd::ScreenToC

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。