MFC常见的类:
CCmdTarget:是MFC类库中消息(消息分为:标准消息(只有由CWnd类派生来的类才可以接受到此类消息)、命令消息(CCmdTarget的派生类都可以接收到此类消息)、通知消息)映射体系的一个基类,是MFC处理命令消息的基础、核心。消息映射把命令或消息引导给用户为之编写的响应函数。
CWnd:窗口, 它是大多数“看得见的东西”的父类(Windows里几乎所有看得见的东西都是一个窗口,大窗口里有许多小窗口),比如视图CView、框架窗口CFrameWnd、工具条CToolBar、对话框CDialog、按钮CButton,etc;一个例外是菜单(CMenu)不是从窗口派生的。该类很大,一开始也不必学,知道就行了。
CDocument文档,负责内存数据与磁盘的交互。最重要的是OnOpenDocument(读入),OnSaveDocument(写盘),Serialize(读写)
CView视图,负责内存数据与用户的交互。包括数据的显示、用户操作的响应(如菜单的选取、鼠标的响应)。最重要的是OnDraw(重画窗口),通常用CWnd::Invalidate()来启动它。另外,它通过消息映射表处理菜单、工具条、快捷键和其他用户消息。你自己的许多功能都要加在里面,你打交道最多的就是它。
CDC设备文本。无论是显示器还是打印机,都是画图给用户看。这图就抽象为CDC。CDC与其他GDI(图形设备接口)一起,完成文字和图形、图像的显示工作。把CDC想象成一张纸,每个窗口都有一个CDC相联系,负责画窗口。CDC有个常用子类CClientDC(窗口客户区),画图通常通过CClientDC完成。
CDialog对话框
CWinApp应用程序类。似于C中的main函数,是程序执行的入口和管理者,负责程序建立、消灭,主窗口和文档模板的建立。最常用函数InitInstance():初始化。
CGdiObject及子类,用于向设备文本画图。它们都需要在使用前选进DC。
CPen笔,画线
CBrush刷子,填充
CFont字体,控制文字输出的字体
CBitmap位图
CPalette调色板
CRgn区域,指定一块区域可以用于做特殊处理。
CFile文件。最重要的不外是Open(打开),Read(读入),Write(写)
CString字符串。封装了C中的字符数组,非常实用。
CPoint点,就是(x, y)对
CRect矩形,就是(left, top, right, bottom)
CSize大小,就是(cx, cy)对(宽、高)
Windows使用与设备无关 的图形设备环境(DC: Device Context) 进行显示。MFC基础类库定义了设备环境对象类----CDC类。
CDC与CGdiObject的关系
说到CDC类就不能不提一下GdiObject---图形对象类。 在Windows应用程序中,设备环境与图形对象共同工作,协同完成绘图显示工作。就像画家绘画一样,设备环境好比是画家的画布,图形对象好比是画家的画笔。用画笔在画布上绘画,不同的画笔将画出不同的画来。选择合适的图形对象和绘图对象,才能按照要求完成绘图任务。
有关CDC类的继承
父类:从 CObject 直接继承而来。继承了CObject类的各种特性,如动态创建等等。
子类:CClientDC-------代表操作窗口的DC ,是比较常用的一个子类
CMetaFileDC ------响应Meta File的DC ,Meta File是一些GDI消息。
CPaintDC-------响应WM_PAINT消息的DC。
CWindowDC ------代表整个屏幕的DC
CDC类的数据成员
数据成员只有两个:
HDC m_hDC : CDC对象使用的输出设备上下文
HDC m_hAttribDC : CDC对象使用的属性设备上下文
新手学习MFC:
由于毕业设计要用到MFC,因此本人这段时间开始学习MFC编程,边学边做,现将一些重要的知识点总结如下:
创建一个MFC程序,操作步骤很简单,要点就是选择MFC AppWizard(exe)、单文档或者多文档,然后点击完成。这样一个基本MFC框架代码就生成了。
用户通过使用资源编辑器来生成图形用户界面,VC++6.0可以处理的资源有Accelerator(快捷键)、Bitmap(位图)、Dialog(对话框)、Icon(图标)、Menu(菜单)、Toolbar(工具栏)、Version(版本信息)、String Table(字符串表)等。用户可以自主添加这些控件来制作图形界面。
MFC编程的核心思想是消息映射、事件驱动。消息一般指用户向应用程序传递的信息,例如用户单击鼠标左键,这就是一个消息。应用程序接受到消息后,就会做出相应的反应。这里的反应是通过消息处理函数实现的。在用户添加控件后,通过为其建立类向导,设置好相应的消息类型,添加消息处理函数。最后由用户来实现这些消息处理函数。关键字afx_msg来表明某函数为消息处理函数。
除了给控件建立相应的消息映射函数,我们还需要给控件建立相应的变量,给控件添加建立类向导,选择成员变量一项,确定变量名、变量类型,之后class wizard会自动添加相应的DDX函数,这是用来给指定对象建立数据交换的环境。
MFC是用c++将win32API以类的形式封装起来了。MFC提供了几个很重要的类:CWINApp类、CDocument类、CDialog类、CFrameWnd类、CView类等,其中CWINApp类及其派生类负责整个程序的执行与终止,这也是我们看不到MFC程序入口的原因。CDocument类负责应用程序的数据管理。CDialog类负责显示和管理对话框。CFrameWnd类是边框窗口类的基类,单文档接口的边框窗口类是直接从CFrameWnd类派生的。CMDIFrameWnd类和CMDIChildWnd类都是从CFrameWnd类派生的,分别用来支持多文档接口的主边框窗口与子窗口。CView类提供了用户自定义视图类的公共接口。
MFC新建的子对话框没有用于初始化对话框的OnInitDialog()函数,可以手动添加,也可以通过类向导添加。添加方法参考:https://jingyan.baidu.com/article/1974b289a697daf4b1f77495.html 注意要选择类对话框对应的类名,不是对话框的ID。
使用组框需要注意一些问题,建立一个组框之后,然后选择样式,在类型一栏先选择简单,确定下拉框的大小范围,然后再选择下移类型,这样一个下拉列表就完成了。
MFC中可以给单文档程序添加背景图片,操作方法如下:https://blog.csdn.net/menshu1892/article/details/69569647
MFC程序中,通过AfxMessageBox()这个函数来输出信息,相当于控制台程序里的printf()函数,这是一个非常重要的函数,在调试程序的过程中常常需要使用到这个函数。
MFC程序中设置主窗口标题的方法:
在C项目名App::InitInstance()中,找到m_pMainWnd所在的位置(在函数返回前)添加一句代码:
m_pMainWnd->SetWindowText("Your Title");即可。
在新建一个对话框时,会自带‘确定‘与‘取消‘按钮。确定按钮默认ID是IDOK,取消按钮默认ID是IDCANCEL,如果你没有在你的对话框类中重载OnOK,OnCancel函数的话,就调用基类的OnOk,OnCancel函数。这两个函数都调用EndDialog();函数来结束对话框。
有时候可能会遇到这样一种情况:在编译的时候,提示对话框的ID没有定义,但是这个这个时候明明定了对话框的ID,这种情况一般出现在一个对话框里调用另一个对话框这种情况。解决办法有两种:1、将对应的对话框ID换成数字,数字可以在资源文件resource.h里查看。2、在对话框的实现文件里包含resource.h。
这里我个人推荐一片关于MFC新手入门,写的很不错,链接:https://wenku.baidu.com/view/bcc4a34000f69e3143323968011ca300a6c3f6a5.html
没有合适的资源?快使用搜索试试~ 我知道了~
亚控科技工作记录之工作细节存储
共9个文件
txt:1个
关于网络精灵奔溃的问题总结::1个
windbg常用命令:1个
需积分: 5 0 下载量 147 浏览量
2022-04-12
11:26:14
上传
评论
收藏 13KB RAR 举报
温馨提示
亚控科技工作记录之工作细节存储
资源详情
资源评论
资源推荐
收起资源包目录
工作记录.rar (9个子文件)
工作记录
修改工程属性: 2KB
WinDbg常用命令 777B
MFC常见类.txt 8KB
关于网络精灵奔溃的问题总结: 2KB
重要代码记录: 4KB
OEM盘制作过程: 2KB
注意事项: 671B
Team账号和密码: 704B
代码提交: 2KB
共 9 条
- 1
代码里的守护者
- 粉丝: 11
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0