**MFC命名规则详解** MFC (Microsoft Foundation Classes) 是微软提供的一种C++库,用于构建Windows应用程序。在MFC编程中,遵循一套特定的命名规则,这些规则旨在提高代码可读性和一致性。这种命名规范被称为匈牙利命名法,其中每个变量名由一个或多个前缀组成,这些前缀描述了变量的类型、用途和范围。 **属性部分** - **全局变量**: 使用`g_`作为前缀,例如`g_cch`表示全局变量,用于字符计数。 - **常量**: 使用`c_`,如`c_blnEnabled`表示布尔类型的常量。 - **C++类成员变量**: 使用`m_`,如`m_strName`表示类中的字符串成员变量。 - **静态变量**: 使用`s_`,如`s_nCount`表示类的静态变量。 **类型部分** - **指针**: 使用`p`,如`pWnd`表示指向窗口类的指针。 - **函数**: 使用`fn`,如`fnGetUser`表示函数名称。 - **无效**: 使用`v`,但这个在实际编程中并不常见。 - **句柄**: 使用`h`,如`hWnd`表示窗口句柄。 - **长整型**: 使用`l`,如`lFileSize`表示文件大小。 - **布尔型**: 使用`b`,如`bIsActive`表示布尔状态。 - **浮点型**: 使用`f`,如`fPrice`表示价格。 - **双字**: 使用`dw`,如`dwVersion`表示版本号。 - **字符串**: 使用`sz`,如`szUserName`表示用户名字符串。 - **短整型**: 使用`n`,如`nAge`表示年龄。 - **双精度浮点**: 使用`d`,如`dDiscount`表示折扣。 - **计数**: 使用`c`,如`cItems`表示项目计数。 - **字符**: 使用`ch`,如`chLetter`表示单个字符。 - **整型**: 使用`i`,如`iIndex`表示索引,通常也会使用`n`。 - **字节**: 使用`by`,如`byData`表示字节数据。 - **字**: 使用`w`,如`wWidth`表示宽度。 - **实型**: 使用`r`,如`rValue`表示实数。 - **无符号**: 使用`u`,如`uCount`表示无符号整数。 **描述部分** - **最大**: 使用`Max`,如`nMaxValue`表示最大值。 - **最小**: 使用`Min`,如`nMinValue`表示最小值。 - **初始化**: 使用`Init`,如`fnInitApp`表示应用程序初始化函数。 - **临时变量**: 使用`T`或`Temp`,如`tempStr`表示临时字符串。 - **源对象**: 使用`Src`,如`pSrcDoc`表示源文档对象。 - **目标对象**: 使用`Dest`,如`pDestFile`表示目标文件对象。 **MFC类和句柄的命名规范** - **Windows类型**: - `HWND`:窗口句柄。 - `HDLG`:对话框句柄。 - `HDC`:设备上下文句柄。 - `HGDIOBJ`:图形设备接口对象句柄。 - `HPEN`:画笔句柄。 - `HBRUSH`:画刷句柄。 - `HFONT`:字体句柄。 - `HBITMAP`:位图句柄。 - `HPALETTE`:调色板句柄。 - `HRGN`:区域句柄。 - `HMENU`:菜单句柄。 - `CWnd`,`CDialog`,`CDC`等:MFC类的实例。 **一般前缀命名规范** - **C**:表示类或结构,如`CDocument`。 - **m_**:表示类的成员变量,如`m_strTitle`。 - **ch**:8位字符。 - **b**:BOOL类型。 - **n**:int类型。 - **w**:16位无符号整数。 - **l**:32位有符号整数。 - **dw**:32位无符号整数。 - **p**:指针。 - **lp**:远指针。 - **lpsz**:字符串指针。 - **h**:句柄。 - **lpfn**:指向回调函数的指针。 **资源ID命名规范** - **IDR_**:多个资源共享标识。 - **IDD_**:对话框资源。 - **HIDD_**:对话框资源的Help上下文。 - **IDB_**:位图资源。 - **IDC_**:光标资源。 - **IDI_**:图标资源。 - **ID_**:来自菜单项或工具栏的命令。 - **HID_**:Help ID。 通过遵循这些命名规则,MFC程序员可以更方便地理解和维护代码,减少因命名不清晰导致的混淆。同时,这些规则也鼓励了良好的编程习惯,使得代码具有更好的可读性,提高了团队合作效率。
剩余6页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 10、安徽省大学生学科和技能竞赛A、B类项目列表(2019年版).xlsx
- 9、教育主管部门公布学科竞赛(2015版)-方喻飞
- C语言-leetcode题解之83-remove-duplicates-from-sorted-list.c
- C语言-leetcode题解之79-word-search.c
- C语言-leetcode题解之78-subsets.c
- C语言-leetcode题解之75-sort-colors.c
- C语言-leetcode题解之74-search-a-2d-matrix.c
- C语言-leetcode题解之73-set-matrix-zeroes.c
- 树莓派物联网智能家居基础教程
- YOLOv5深度学习目标检测基础教程