MFC编程学习心得
更新时间:2024-01-22 20:27:01 阅读量: 教育文库 文档下载
- mfc编程心得体会推荐度:
- 相关推荐
//1、将C语言变量简单重新定义 UINT、INT(32位,4字节)
LONG、DWORD(32位,4字节) WPARAM、LPARAM(32位,4字节) SHORT、WORD(16位,2字节) LONG、LRESULT
BOOL(TRUE、FALSE) PINT
PSTR、
LPSTR、LPCSTR(字符串指针,只读和可写)
//2、H开头,Windows句柄类型变量 HANDLE of Windows =>HWND HANDLE of Instance =>HINSTANCE HANDLE 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 long定义:int nSel;long nTel HANDLE hInst; CString szName,szPass; CString strAddr;
LPCSTR pszName; DWORD dwID;
//如果是成员变量,以“m_”开头 //如果是全局变量,以“g_”开头
正在阅读:
MFC编程学习心得01-22
C语言闯关题04-03
购买保险有享受哪些税收优惠03-10
留学归国是社会问题不是个人04-15
广东金融学院全日制学生转专业实施办法10-24
外贸商品价格的计算方式12-28
新编部编版四年级上学期小学语文混合期末真题模拟试卷(16套试卷)12-28
如此甚好作文600字06-18
中职教师上好《机械制图》课程的技巧12-28
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 心得
- 编程
- 学习
- MFC
- 川教版小学信息技术教案六年级上册全册教案 - 图文
- 2017年中国意式家具市场调研及发展现状分析(目录) - 图文
- “大益茶”营销策划方案
- 1307工作面作业规程(悬移支架)
- 徐家私塾错题集 - 图文
- 《可视化建模与UML》实验指导书
- 成都体育学院教学评估支撑材料目录
- 无棣县学校卫生监督档案2013最全车王镇中心小学
- 定密管理制度
- 归去来兮辞情景式默写
- 迁西县戏楼村农业发展与展望
- 概率论与数理统计及其应用课后答案(浙大版)第4章 正态分布
- 《中国当代文学》练习题库及答案
- 2018上海市初三语文二模定稿A卷(含答案)
- 上海财经大学自主招生个人陈述自荐信优秀范文
- 我国山洪灾害的成因
- 有还原烷基化蛋白质消化操作流程
- 浅谈学习线性代数的心得体会
- 《上海市道路和公共场所清扫保洁服务管理办法》2012年5月2日
- 1省外工程监理企业进江苏承接业务备案