




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Windows系统将消息分为两大类,一类是系统预定义的消息,一类是用户自定义的消息。系统消息由前缀和后缀两部分组成。前缀表示处理该消息的窗口类别,后缀描述消息的内容。例如,WM_CLOSE中,“WM”表示处理该消息的窗口为一般窗口,“CLOSE”表示窗口关闭。表1.1列出了系统定义消息的全部前缀及其解释。表1.1 系统消息前缀前 缀含 义WM普通窗口消息BM按钮消息CB组合框消息ABM应用程序桌面工具条消息DBT设备消息CBEM扩展组合框消息CDM通用对话框消息DL下拉列表框消息DM对话框默认的Push按钮消息DTM日期和时间控件消息HDMHeader控件消息HKM热键消息IPMIP控件消息LB列表框控件消息LVM列表视图控件消息MCM日历控件消息PBM进度条控件消息PGMPager控件消息PSM属性标签消息RB伸缩条消息SB状态栏消息SBM滚动条消息STM静态控件消息TB工具条消息TBM跟踪条消息TCM标签控件消息TTM工具提示消息TVM树视图控件消息UDM微调按钮控件消息EM编辑框控件消息除了系统定义的消息外,用户还可以自定义消息。对于自定义的消息,窗口函数必须解释该消息,并进行适当的处理。用户在自定义消息时,应保证消息值是唯一的,并且不能与系统中定义的消息冲突。系统保留了0x00000x03FF的消息值,应用程序不能使用。用户可以使用0x0400(WM_USER)0x7FFF的消息值。提示:为了获得系统范围内唯一的消息字符串,可以调用RegisterWindowMessage函数,向其传递一个消息字符串。该函数会返回一个0xC0000xFFFF的系统范围内唯一的消息标识符。表1.2 nCmdShow参数值列表参 数 值描 述SW_HIDE隐藏窗口SW_MINIMIZE最小化窗口,将最顶层窗口激活SW_RESTORE还原窗口SW_SHOW显示窗口SW_SHOWMAXIMIZED最大化显示窗口SW_SHOWMINIMIZED最小化显示窗口SW_SHOWMINNOACTIVE最小化显示窗口,当前活动的窗口仍然处于活动状态SW_SHOWNA显示窗口,当前活动的窗口仍然处于活动状态SW_SHOWNOACTIVATE在窗口激活之前显示的大小和位置显示窗口,当前活动的窗口仍然处于活动状态SW_SHOWNORMAL激活并显示一个窗口,如果窗口处于最小化或最大化状态,恢复窗口原始的大小表1.3 窗口类风格风 格描 述CS_BYTEALIGNCLIENT窗口的客户区域以“字符边界”对齐,当系统调整窗口的水平位置时,客户区域的左边坐标是8的整数倍CS_BYTEALIGNWINDOW窗口以“字符边界”对齐,当系统调整窗口的水平位置时,客户区域的左边坐标是8的整数倍CS_CLASSDC分配一个设备环境并被类中的所有窗体共享。它是可以适用于一个应用程序的若干线程创建的一个相同类的窗体。当多个线程试图同时使用相同的设备环境时,系统只允许一个线程成功地进行绘图操作CS_DBLCLKS当用户双击窗口时,将向窗口函数发送鼠标双击消息CS_GLOBALCLASS指定此窗体类是一个应用程序全局类。应用程序全局类是由一个在进程中对所有模块有效的exe或dll注册的窗体类CS_HREDRAW如果窗口的位置或宽度发生改变,将重绘窗口CS_NOCLOSE窗口中的“关闭”按钮不可见CS_OWNDC为同一个窗口类中的每个窗口创建一个唯一的设备上下文CS_PARENTDC设置子窗口中剪下的矩形区域到父窗口中,以使子窗口可以在父窗口上绘图。指定该风格可以提高应用程序的性能CS_SAVEBITS把被窗口遮掩的屏幕图像作为位图保存起来。当该窗口被移动时,Windows操作系统使用被保存的位图来重建屏幕图像CS_VREDRAW如果窗口的位置或高度改变,将重绘窗口表1.5 MFC数据类型数 据 类 型描 述BOOL布尔值,取值为TRUE或FALSEBSTR32位字符指针BYTE8位无符号整数COLORREF用作颜色值的32位数值DWORD32位无符号整数,或者段的地址和与之相关的偏移量LONG32位有符号整数LPARAM32位值,作为窗口函数或回调函数的参数LPCSTR指向字符串常量的32位指针LPSTR32位字符串指针LPCTSTR指向兼容Unicode和DBCS字符集的字符串常量32位指针LPTSTR指向兼容Unicode和DBCS字符集的字符串32位指针LPVOID指向一个未定义类型的32位指针LRESULT窗口函数或回调函数返回的32位值 UINT32位无符号整数 WNDPROC指向一个窗口函数的32位指针WORD16位无符号整数WPARAM作为参数传递给窗口函数或回调函数的值POSITION用于标记集合中一个元素的位置LPCRECT指向一个RECT结构体常量的32位指针1MFC诊断函数为了调试的方便,MFC提供了多个诊断函数,如表1.6所示。表1.6 MFC诊断函数函 数 名 称描 述AfxCheckMemory检查当前分配的所有内存的完整性AfxDump如果在调试器内调用,则转存对象的状态AfxDumpStack生成当前栈的一个映像,该函数通常被静态链接AfxEnableMemoryTracking打开或关闭内存跟踪AfxIsMemoryBlock检验一个内存块是否被正确地分配AfxIsValidString检验一个字符串指针是否有效AfxSetAllocHook允许在每次进行内存分配时调用一个函数AfxDoForAllClasses对所有从CObject继承的支持运行时检查的类执行一个特定的功能AfxDoForAllObjects对所有从CObject继承的用new分配内存的对象执行一个指定的功能2异常抛出函数为了使程序具有健壮性,MFC提供了多个异常抛出函数,如表1.7所示。表1.7 异常抛出函数函 数 名 称描 述AfxThrowArchiveException抛出一个档案异常AfxThrowFileException抛出一个文件异常续表函 数 名 称描 述AfxThrowMemoryException抛出一个内存异常AfxThrowNotSupportedException抛出一个不支持的异常AfxThrowResourceException抛出一个Windows未找到资源的异常AfxThrowUserException在用户初始化的程序动作中抛出一个异常AfxThrowOleException抛出一个OLE异常AfxThrowOleDispatchException在OLE自动化函数内抛出异常AfxThrowDaoException从代码中抛出一个CDaoException异常AfxThrowDBException从代码中抛出一个CDBException异常3字符串格式和消息框函数MFC除了提供CString类操作字符串外,还提供了两个全局函数,如表1.8所示。表1.8 字符串格式和消息框函数函 数 名 称描 述AfxFormatString1用一个字符串替换给定字符串中的格式字符“%1”AfxFormatString2用两个字符串替换给定字符串中两个格式字符“%1”和“%2”AfxMessageBox显示一个消息框4应用程序信息和管理函数MFC提供的与应用程序有关的全局函数如表1.9所示。其中,有许多函数在开发应用程序过程中经常使用。表1.9 应用程序信息和管理函数函 数 名 称描 述AfxFreeLibrary减少已调入内存的动态链接库模块的引用计数;当引用计数减到0时,该模块就会被释放AfxGetApp返回应用程序对象CWinApp的一个指针AfxGetAppName返回应用程序的名称AfxGetInstanceHandle返回应用程序实例句柄AfxGetMainWnd返回指向非OLE应用程序的当前主窗口指针,或者是服务器程序的线程框架窗口AfxGetResourceHandle返回应用程序默认的资源AfxInitRichEdit为应用程序初始化RichEdit控件AfxLoadLibrary调入一个DLL模块,同时返回一个句柄,通过该句柄可以获得DLL中函数的地址AfxRegisterWndClass注册一个Windows窗口类,用它来代替MFC自动注册的窗口类AfxSocketInit在应用程序的InitInstance方法中调用,用于初始化套接字AfxSetResourceHandle设置应用程序默认的资源句柄AfxRegisterClass在使用MFC的DLL中注册窗口类AfxBeginThread创建一个新的线程AfxEndThread结束一个线程AfxGetThread获取指向当前CWinThread对象的指针AfxWinInit由MFC提供的WinMain函数直接调用,在GUI应用程序中,用于初始化MFC5集合类帮助函数集合类帮助函数多用于数组操作。表1.10列出了MFC提供的集合类帮助函数。表1.10 集合类帮助函数函 数 名 称描 述CompareElements比较元素是否相同ConstructElements当生成一个元素时必须实现的动作CopyElements将元素从一个数组中复制到另一个数组中DestructElements当销毁一个数组时需要实现的动作DumpElements提供了面向流的诊断输出HashKey计算一个Hash键SerializeElements将元素保存到文件中,或从文件中获得元素6记录字段交换函数记录字段交换函数用于记录集数据与变量的交互。表1.11列出了与记录字段相关的函数。表1.11 记录字段交换函数函 数 名 称描 述RFX_Binary传送CByteArray类型的字节数RFX_Bool传送布尔数据RFX_Byte传送单个字节数据RFX_Date传送CTime或TIMESTAMP_STRUCT类型的时间和日期数据RFX_Double传送双精度浮点数据RFX_Int传送整型数据RFX_Long传送长整型数据RFX_LongBinary通过CLongBinary类的对象传送二进制大对象RFX_Single传送浮点数据RFX_Text传送字符串数据RFX_Binary_Bulk传送二进制数据的数组RFX_Bool_Bulk传送布尔数据的数组RFX_Date_Bulk传送TIMESTAMP_STRUCT数据的数组RFX_Double_Bulk传送双精度浮点数据数组RFX_Int_Bulk传送整型数据数组RFX_Long_Bulk传送长整型数据数组RFX_Single_Bulk传送浮点数据数组RFX_Text_Bulk传送LPSTR数据数组7OLE相关函数为了支持OLE技术,MFC对OLE进行了封装,同时提供了一些全局函数用于OLE操作,如表1.12所示。表1.12 OLE相关函数函 数 名 称描 述AfxOleInit初始化OLE库AfxOleCanExitApp判断应用程序是否能够结束AfxOleGetMessageFilter获取应用程序当前的消息过滤器AfxOleGetUserCtrl获取当前的用户控制标记续表函 数 名 称描 述AfxOleSetUserCtrl设置或清除用户控制标记AfxOleLockApp增加应用程序中活动对象的全局计数AfxOleUnlockApp减少应用程序中活动对象的全局计数AfxOleRegisterServerClass在OLE系统注册表中注册一个服务器AfxOleSetEditMenu实现TypeName Object命令的用户接口AfxOleRegisterControlClass在注册数据库中添加控件类AfxOleRegisterPropertyPageClass在注册数据库中添加控件的属性页类AfxOleRegisterTypeLib在注册数据库中添
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人加装电梯协议书
- 第2单元 8 土地的誓言 说课稿2023-2024学年七年级语文下册同步教学
- vpn ppp控制协议书终止
- 成都大运会保密协议书
- 征地补偿协议书
- osi七层模型的协议书
- 直播没协议书
- 房产抵押协议书
- arp协议书的主要功能
- 课堂教学设计模板
- 路灯施工安全责任协议书
- 沪科版七年级上册初一数学全册教案(教学设计)
- 防止电力生产事故25项反措地重点要求最终版
- 第2章-信息可视化设计的概念、原则与类型60课件
- 日本蜡烛图技术完整版
- 崇义县凌志矿冶有限责任公司过埠铁木里铁矿(新增资源)采矿权出让收益评估报告
- 大学学生违纪处罚办法
- 癌痛规范化治疗课件资料
- 牛津9AU3-Head-to-head名师制作优质教学课件
- 深信服SDWAN产品介绍
- 雨露计划职业教育补助-学籍证明-模板四川优秀资料
评论
0/150
提交评论