MFC编程学习心得_第1页
MFC编程学习心得_第2页
MFC编程学习心得_第3页
MFC编程学习心得_第4页
全文预览已结束

下载本文档

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

文档简介

/1、将C语言变量简单重新定义UINT、INT(32位,4字节)LONG、DWORD(32位,4字节)WPARAM、LPARAM(32位,4字节)SHORT、WORD(16位,2字节)LONG、LRESULTBOOL(TRUE、FALSE)PINT PSTR、LPSTR、LPCSTR(字符串指针,只读和可写)/2、H开头,Windows句柄类型变量HANDLE of Windows =HWNDHANDLE of Instance =HINSTANCEHANDLE of Icon =HICON/3结构体类型SIZE、POINT、RECT MFC所有封装类一共有200多个,但是MFC的内部技术不只是简单地封装。MFC内部总共有六大关键技术,构架起了整个MFC开发平台。一、MFC的六大关键技术包括:a)MFC程序的初始化过程:b)消息映射机制;c)运行时类型识别(RTTI);d)动态创建;e)永久保存;f)消息传递;六大关键技术的目的是为了提高开发效率,开发者只需要在局部做简单的修改,即可处理大部分窗口事物。二、SendMessage和PostMessage函数的功能:a)能够向指定的窗口内发送窗口消息,既可以是本进程内窗口也可以是其他进程的;b)既可以发送系统内部消息,消息编号的范围是:1-WM_USER-1;例如:WM_LBUTTONDONW,WM_MOUSEMOVE等;c)也可以发送非系统消息(开发者定义的消息),范围是WM_USER-0x7FFF。三、SendMessage和PostMessage两个函数的区别是:a)SendMessage是阻塞型函数,PostMessage是非阻塞型函数:SendMessage用于调用指定窗口的内部程序,直到窗口程序处理完成以后再返回:PostMessage是将一个消息寄送到一个窗口内的消息队列后就立即返回。b)两个函数的返回值不同:LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM,lParam);BOOL PostMessage(HWND hWnd,UNIT Msg,WPARAM wParam,LPARAM,lParam);SendMessage的返回值依赖于消息处理函数c)跨线程或者跨进程发送消息,推荐使用PostMessage函数。一、更具主窗口类型,MFC软件工程可以分为以下几种构架模型:1、SDI(Single Document Interface):单文档界面,一个主框架窗口下只能编辑一份文档。例如:记事本和画笔等。2、MDI(Multiple Document Interface):多文档界面,一个主框架窗口下可以同时编辑多份文档。例如:VC+6.0,Photoshop等软件。3、基于对话框的软件模型:主窗口是通过资源管理器,在对话框模板内摆放控件编辑而成的。多数用于开发小规模软件,例如:任务管理器。4、其他自定义窗口做主窗口:主窗口既不是框架也不是对话框,而是直接开发通用窗口类CWind而成。例如:输入法窗口、QQ和360软件等,有时这类软件都可以使用框架和对话框模式来代替开发而成。对话框常用消息映射函数:二、对话框初始化消息:1、WM_CREATE:通用窗口初始化消息窗口还未显示出来,只有父窗口,子窗口还没创建2、WM_INITDIALOG:对话框窗口专用消息子窗口已经全部创建完成,可以调用和操作子窗口三、对话框关闭过程消息:1、WM_SYSCOMMAND:管理所有系统菜单和系统按钮消息包括通过最大化、最小化、移动、大小和关闭等2、WM_CLOSE:是WM_SYSCOMMAND消息的一个专用关闭的分支再次消息处理过程可以取消本次关闭任务3、IDCANCEL按钮消息:不但用于按钮回调消息,也是系统按钮关闭窗口的回调执行真正关闭对话框函数是EndDialog,在此消息处理过程可以取消本次关闭任务4、WM_DESTROY:通用窗口销毁消息窗口已经在屏幕中消失了,但是自身窗口和窗口内的控件都还可以调用在此消息处理过程可以取消本次关闭任务四、非模式对话框:1、在调用EndDialog函数关闭时,非模式对话框只是隐藏没有真正关闭;2、在调用DestroyWindow函数关闭时,只是隐藏没有真正关闭;3、DestroyWindow函数是通用摧毁窗口的函数,适用于对话框、控件、框架和视图等。一个MFC软件工程由至少一个CWind派生类和一个CWinApp派生类,因此这两个类是MFC工程中最重要的两个类。一、CWind成员函数:主要就是一个核心成员变量m_hWnd。1、DestroyWindow:摧毁窗口。2、Create和CreateEx:创建窗口,CreateEx创建时可以指定扩展风格。3、获取窗口句柄:a)pWnd-m_hWnd:直接调用前最好判断一下指针是否为空。b)operator HWND():自动类型转换,将对象转换为句柄。c)GetSafeHwnd():可以避免的a方法,因为指针为空造成软件崩溃。4、由句柄转化为CWnd对象:a)CWnd:FromHandle:生成一个临时性窗口类指针b)Attach和Detach:为一个CWnd对象嫁接和移除窗口句柄;c)SubclassWindow和UnsubclassWindow:子类化和反子类化;d)SubclassDlgItem:子类化指定ID对应的控件窗口。5、获取和设置窗口信息:a)GetWindowText和SetWindowText:获取和设置窗口的标题文字。b)GetStyle和ModifyStyle:获取和设置窗口的基础风格。c)GetExStyle和ModifyStyleEx:获取和设置窗口的扩展风格。6、计时器:a)SetTimer:b)KillTimer:7、窗口操作:a)ShowWindow:b)EnableWindow:c)MoveWindow:d)CenterWindow:二、CWinApp类成员变量:三、CWinApp类成员函数:/匈牙利命名法:/变量:int lo

温馨提示

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

评论

0/150

提交评论