### Visual C++ 入门精解 #### 第一部分:VC++中的对象命名规则、常用宏定义的命名、以及VC++下的数据类型 在学习Visual C++(以下简称VC++)的过程中,掌握良好的命名习惯是非常重要的。这不仅能提高代码的可读性,还可以减少后期维护的工作量。本节将详细介绍VC++中的命名规则、数据类型以及一些常用的宏定义。 ##### 一、匈牙利命名法 匈牙利命名法是一种变量命名方法,通过在变量名前添加前缀来表示变量的数据类型或作用域等信息。这种方法在VC++开发中非常常见。 **基本规则**: - **变量的取名方式**:`<scope_>+<prefix_>+<qualifier>`。其中,`scope_` 表示变量的作用域;`prefix_` 表示变量的数据类型;`qualifier` 表示变量的意义或者功能。 - **特殊的类型命名**: - 类的前缀通常使用 `Lm` 来表示。 - 接口的前缀通常使用 `I` 来表示。 **具体示例**: - `LmObject`:表示类型本身的类。 - `IUnknown`:表示接口。 **特殊约定**: - 鼠标工具类的派生类前缀为 `_Mt`。 - 对话框类的前缀为 `CDlg`。 - 橡皮条类的前缀为 `_Rb`。 **范围前缀**: - `g_`:全局作用域。 - `m_`:成员变量。 - `l_`:局部作用域。建议尽量少用。 **其他约定**: - 对于全程变量,在类型前缀后应加上如下关键字以区分不同模块的功能,例如: - 特征模块:`Fea` - 草图模块:`Sket` - 装配模块:`Asm` - 工程图模块:`Lay` - 曲面模块:`Surf` - 界面模块:`Ui` ##### 二、VC++ 下的数据类型 在VC++中,不同的数据类型有着不同的前缀,这些前缀有助于开发者快速识别变量类型。 **基本数据类型前缀**: - `ch`: 表示 `char` 或者在定义了 `_UNICODE` 的情况下表示 `TCHAR`。 - `b`: 表示布尔类型 `BOOL`。 - `n`: 表示整型 `int` 或者无符号整型 `UINT`。 - `w`: 表示16位无符号值 `WORD`。 - `l`: 表示32位有符号整型 `LONG`。 - `dw`: 表示32位无符号整型 `DWORD`。 - `p`: 表示指针 `*`。 - `lp`: 表示远指针 `FAR*`。 - `lpsz`: 表示字符字符串指针 `LPSTR`、常量字符字符串指针 `LPCSTR` 或者在定义了 `_UNICODE` 的情况下表示常量字符字符串指针 `LPCTSTR`。 - `h`: 表示句柄 `handle`。 - `lpfn`: 表示回调函数的远指针。 **示例**: - `chGrade`: 表示 `char` 类型的变量。 - `bEnabled`: 表示布尔类型变量。 - `nLength`: 表示整型变量。 - `wPos`: 表示16位无符号整型变量。 - `lOffset`: 表示32位有符号整型变量。 - `dwRange`: 表示32位无符号整型变量。 - `pDoc`: 表示指针变量。 - `lpDoc`: 表示远指针变量。 - `lpszName`: 表示字符字符串指针变量。 - `hWnd`: 表示窗口句柄。 - `lpfnAbort`: 表示指向回调函数的远指针。 ##### 三、常用Windows对象名称缩写 在VC++开发中,经常会用到各种Windows对象,为了方便识别和使用,通常会使用一些简短的变量名。 **Windows对象及示例变量**: - `HWND`: 窗口句柄,例如 `hWnd;`。 - `HDLG`: 对话框句柄,例如 `hDlg;`。 - `HDC`: 设备上下文句柄,例如 `hDC;`。 - `HGDIOBJ`: 图形设备接口对象句柄,例如 `hGdiObj;`。 - `HPEN`: 笔刷句柄,例如 `hPen;`。 - `HBRUSH`: 画笔句柄,例如 `hBrush;`。 - `HFONT`: 字体句柄,例如 `hFont;`。 - `HBITMAP`: 位图句柄,例如 `hBitmap;`。 - `HPALETTE`: 调色板句柄,例如 `hPalette;`。 - `HRGN`: 区域句柄,例如 `hRgn;`。 - `HMENU`: 菜单句柄,例如 `hMenu;`。 **MFC类及示例对象**: - `CWnd*`: 窗口类,例如 `pWnd;`。 - `CDialog*`: 对话框类,例如 `pDlg;`。 - `CDC*`: 设备上下文类,例如 `pDC;`。 - `CGdiObject*`: 图形设备接口对象类,例如 `pGdiObj;`。 - `CPen*`: 笔刷类,例如 `pPen;`。 - `CBrush*`: 画笔类,例如 `pBrush;`。 - `CFont*`: 字体类,例如 `pFont;`。 - `CBitmap*`: 位图类,例如 `pBitmap;`。 - `CPalette*`: 调色板类,例如 `pPalette;`。 - `CRgn*`: 区域类,例如 `pRgn;`。 - `CMenu*`: 菜单类,例如 `pMenu;`。 - `CStatic*`: 静态控件类,例如 `pStatic;`。 - `CButton*`: 按钮控件类,例如 `pBtn;`。 - `CEdit*`: 编辑控件类,例如 `pEdit;`。 - `CListBox*`: 列表框控件类,例如 `pListBox;`。 - `CComboBox*`: 组合框控件类,例如 `pComboBox;`。 ##### 四、常用宏定义命名 在VC++中,为了简化代码并提高效率,会使用一些宏定义。宏定义的命名同样遵循一定的规则,以便于理解。 **宏定义命名列表**: - 前缀 `IDR_`:用于标识多个资源共享的类型,例如 `IDR_MAINFRAME`。 - 前缀 `IDD_`:用于标识对话框资源,例如 `IDD_SPELL_CHECK`。 - 前缀 `IDB_`:用于标识位图资源,例如 `IDB_COMPANY_LOGO`。 - 前缀 `IDC_`:用于标识控件资源,例如 `IDC_BUTTON1`。 通过上述详细的介绍,我们可以看到VC++中的命名规则、数据类型以及宏定义的命名都是非常规范的。这不仅有助于提高代码的质量,也使得团队协作变得更加高效。在实际开发过程中,遵循这些规则将会大大提高开发效率和代码质量。
剩余18页未读,继续阅读
- 粉丝: 103
- 资源: 15
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助