MFC学习笔记.doc_第1页
MFC学习笔记.doc_第2页
MFC学习笔记.doc_第3页
MFC学习笔记.doc_第4页
MFC学习笔记.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、 Windows程序内部运行原理1、 应用程序通过调用API(Application Programming Interface)来通知操作系统执行相应的功能,即系统调用。2、 消息机制:操作系统将每个事件都包装成一个成为消息的结构体MSG来传递给应用程序;窗口句柄(HWND):操作系统给每一个窗口指定的唯一的标识,与指针类似WPARAM、LPARAM是消息的附加参数(整形)3、 WinMain函数4、 窗口类(WNDCLASS)设计注册创建显示更新窗口5、 消息循环6、 窗口过程函数二、 掌握C+1、 this指针2、 避免头文件重复定义的方法:在编写好的头文件的头尾分别添加预编译指令:#ifndef XXXXXX#define XXXXXX和#endif三、 MFC框架程序结构1、 : 表示调用全局API函数2、 MFC窗口:窗口设计注册:RegisterClass()函数创建:CreatWindowEx()函数显示:ShowWindow()函数更新:UpdateWindow()函数3、 MFC的消息处理机制:消息映射消息产生(消息和具体的窗口相关) MFC维护了一个句柄与C+类指针的映射通过句柄找到相对应的C+类对象的指针将这个指针传递给基类,在基类中调用WindowProc()进行处理WindowProc()调用OnWndMsg()函数查找消息映射,找到对应的消息处理函数四、 文本编程1、 插入符CreateSolidCaret();ShowCaret();2、 获取当前设备描述表中的文本信息GetTextMetrics(LPTEXTMETRICS lpMetrics); 获取当前系统字体的度量TEXTMETRICS Structure3、 创建图像插入符CreateCaret(CBitmap* pBitmap)4、 窗口输出文字OnDraw()函数:窗口重绘时被调用 可使文字或图片始终显示在窗口上CString类:TextOut(x,y,str);5、 路径程GetTextExtent()函数:获取特定字符串在屏幕上显示时占据的宽度和高度,注意与GetTextMetrics()函数的区别;利用SelectClipPath()函数设置相应的模式 对路径程与剪切区域之间的相互关系 来达到特定的效果。6、 字符输入设置插入符的位置:SetCaretPos()函数;创建字体:CreatePointFont()函数;选择字体:SelectObject()函数,返回先前字体的指针;MFC中CEditView和CRichEditView类 本身有简单的字处理程序,可以将view类由她们派生即可;DrawText()函数:将文字的输出局限在一个矩形内设置定时器: SetTimer();五、 菜单编程1、 消息的分类:从CWnd类派生的类即可以接收标准消息也可以接收命令消息和通告消息,从CCmdTarget类派生的类能接收命令消息和通告消息。2、 OnCommand完成命令消息的路由:CMainFrame最先接收消息-将消息传给子窗口View类,响应否?否Doc类,响应否?否-交还给view类,在交还给Main类,响应否?否-交给App类处理。3、 标记菜单GetMenu()-GetSubMenu()六、 对话框编程1、 CDialog类2、 获取指定控件的指针:GetDlgItem();获取窗口文本:GetWindowText();访问控件的方式:方法一:方法二:方法三:方法四:将文本框与自定义的成员变量关联由DoDataExchange()完成,但是不直接调用,而是通过UpdateData()函数调用来完成必须注意:方法五:方法六:方法七:带复选3、 对话框的放大与收缩:4、 向导类型对话框的创建工具栏和状态栏的编程1、 SetWindowLong()函数2、 AfxRegisterWndClass()函数3、 SetClassLong()函数 在窗口创建之后改变窗口的图标、背景等,这个宏可以将一个整型的值转换为与资源管理函数兼容的资源类型,返回值为字符指针4、 获取当前实例句柄的方法:(1) AfxGetInstanceHandle()函数;(2) 利用CWinApp类的成员变量m_hInstance,因此只需获取CWinApp的实例对象theAPP,但是需要在CMainFrame中申明 theApp来自外部源文件(用extern语句)(3) 利用全局函数AfxGetApp()函数获取CWinApp的指针来调用其内部成员变量m_hInstancePS:让一个变量的取值限定在某个范围,可以将这个变量对这个范围取模(其实就是取余数);5、 工具栏编程CToolBar类工具栏的显示与隐藏:ShowControlBar();6、 状态栏时间:CTime类进度栏:CProgressCtrl类让进度栏动起来:StepIt()函数;7、 获取窗口当前鼠标位置坐标的四种方式:8、 微程序添加启动页面:Splash Screen 组件图形的设置1、 各图形是否覆盖由画刷决定,若画刷是透明的,则不覆盖GetStockObject()获得当前画刷2、 颜色设置3、 字体设置4、 为用户的选择 展示示例5、 设置 对话框、控件等的背景色和字体颜色等6、 在窗口中贴图图形的保存与重绘文件操作1、 指向常量的指针:const char* pStr (指向的对象是常量,不可修改;但指针值可以修改)指针常量: char const*pStr (指针本身是常量,所指向的内容可以修改)2、 fopen()打开文件,fwrite()写入数据,fwrite()读取数据3、 注意文件袋呃存储形式:因此在写入和读取文件的时候要采用相同的方式。4、 文件操作ofstream()/ifstream()5、 Win32 API中的文件操作函数CreateFile()函数,WriteFile()写入数据6、 MFC 对文件操作的类: CFileCFileDialog类 :用于创建文件打开或保存对话框7、 WriteProfileString()函数在win.ini文件中写入字段CWinApp: WriteProfileString()函数在 注册表中写入字段8、 对注册表的编程:RegCreateKey(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论