软件编程学习心得//1、将c语言变量简单重新定义uint、int(32位,4字节)long、dword(32位,4字节)wparam、lparam(32位,4字节)short、word(16位,2字节)long、lresultbool(true、false)pintpstr、lpstr、lpcstr(字符串指针,只读和可写)//2、h开头,windows句柄类型变量handleofwindows=>hwndhandleofinstance=>hinstancehandleoficon=>hicon//3结构体类型size、point、rectmfc所有封装类一共有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是非阻塞型第1页共4页函数:sendmessage用于调用指定窗口的内部程序,直到窗口程序处理完成以后再返回:postmessage是将一个消息寄送到一个窗口内的消息队列后就立即返回。b)两个函数的返回值不同:lresultsendmessage(hwndhwnd,uintmsg,wparamwparam,lparam,lparam);boolpostmessage(hwndhwnd,unitmsg,wparamwparam,lparam,lparam);sendmessage的返回值依赖于消息处理函数c)跨线程或者跨进程发送消息,推荐使用postmessage函数。一、更具主窗口类型,mfc软件工程可以分为以下几种构架模型:1、sdi(singledocumentinterface):单文档界面,一个主框架窗口下只能编辑一份文档。例如:记事本和画笔等。2、mdi(multipledocumentinterface):多文档界面,一个主框架窗口下可以同时编辑多份文档。例如。vc++6.0,photoshop等软件。3、基于对话框的软件模型。主窗口是通过资源管理器,在对话框模板内摆放控件编辑而成的。多数用于开发小规模软件,例如。任务管理器。4、其他自定义窗口做主窗口。主窗口既不是框架也不是对话框,而是直接开发通用窗口类cwind而成。例如。输入法窗口、qq和360软件等,有时这类软件都可以使用框架和对话框模式来代替开发而成。对话框常用消息映射函数:二、对话框初始化消息:1、wm_create:通用窗口初始化消息窗口还未显示出来,只有父窗口,子窗口还没创建2、wm_initdialog:对话框窗口专用消息子窗口已经全部创建完成,可以调用和操作子窗口三、对话框关闭过程消息:1、wm_syscommand:管理所有系统菜单和系统按钮消息包第2页共4页括通过最大化、最小化、移动、大小和关闭等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)operatorhwnd:自动类型转换,将对象转换为句柄。c)getsafehwnd。可...