程序作者:管宁 个人网站:www.cndev-lab.com 作者保留作品的所有权利,如需转载,请务必注明出处和作者。
VC作为一个主流的开发平台一直深受编程爱好者的喜爱,但是很多人却对它的入门感到难于上青天,究其原因主要是大家对他错误的认识造成的,严格的来说VC++不是门语言,虽然它和C++之间有密切的关系,如果形象点比喻的话,可以C++看作为一种”工业标准”,而VC++则是某种操作系统平台下的”厂商标准”,而”厂商标准”是在遵循”工业标准”的前提下扩展而来的。
VC++应用程序的开发主要有两种模式,一种是WIN API方式,另一种则是MFC方式,传统的WIN API开发方式比较繁琐,而MFC则是对WIN API再次封装,所以MFC相对于WIN API开发更具备效率优势,但为了对WINDOWS开发有一个较为全面细致的认识,笔者在这里还是以讲解WIN API的相关内容为主线。
话说到这里可能更多人关心的是学习VC++需要具备什么条件,为什么对于这扇门屡攻不破呢?
要想学习好VC必须具备良好的C/C++的基础,必要的英语阅读能力也是必不可少的,因为大量的技术文档多以英文形式发布。
许多初学VC++的人对于它怪异的写法和程序奇特的工作方式非常不理解,为了帮助大家对它的入门有一个比较概括的了解,我们把这一小节内容分成若干部分讲解。
第一部分:VC++中的对象的命名规则、常用宏定义的命名,以及VC++下的数据类型。 注:这部分简单浏览即可。
第二部分:VC++常用技术术语的解释。
第三部分:HelloWin程序的详细分析。
第一部分
匈牙利命名法规则
一般情况下,变量的取名方式为:
<scope_> + <prefix_> + <qualifier>。
范围前缀_,类型前缀_,限定词。
特殊的类型命名,前缀表示:
类、接口
前缀 |
类型 |
例子 |
备注 |
Lm |
Class |
LmObject |
表示类型本身 不与范围前缀结合使用 |
I |
Interface 接口 |
IUnknown |
注:类名前缀改为Lm,对于非全局的类最好有语义表示其所属模块。类的实例命名与类名大致相同,只是类名语义表示类的通用含义,而类名表示此实例的具体语义。如类名LmSketPoint表示草图点的类定义,而它的两个实例 _StartPoint,_EndPoint分别代表起点和终点的语义。类的实例命名带上前缀_。
特殊约定: a. MouseTool的派生类的前缀为_Mt. b. 对话框类的前缀为CDlg. c. 橡皮条类的前缀为_Rb.
凡围前缀:
前缀 |
类型 |
例子 |
备注 |
g_ |
全局作用域 |
g_Servers |
|
m_ |
成员变量 |
m_pDoc, |
l_ |
局部作用域 |
l_strName |
少用 |
注:编程时尽量少用全程变量,对于全程变量还应在类型前缀后加上如下关键字:
特征模块 : Fea 草图模块 : Sket 装配模块 : Asm 工程图模块: Lay 曲面模块 : Surf 界面模块 : Ui
常用的一般数据类型的前缀
前缀 |
类型 |
内存规格描述 |
例子 |
ch |
char |
8-bit character |
chGrade |
ch |
TCHAR |
16-bit character if _UNICODE is defined |
chName |
b |
BOOL |
Boolean value |
bEnabled |
n |
int |
Integer (size dependent on operating system) |
nLength |
n |
UINT |
Unsigned value (size dependent on operating system) |
nLength |
w |
WORD |
16-bit unsigned value |
wPos |
l |
LONG |
32-bit signed integer |
lOffset |
dw |
DWORD |
32-bit unsigned integer |
dwRange |
p |
* |
Ambient memory model pointer |
pDoc |
lp |
FAR* |
Far pointer |
lpDoc |
lpsz |
LPSTR |
32-bit pointer to character string |
lpszName |
lpsz |
LPCSTR |
32-bit pointer to constant character string |
lpszName |
lpsz |
LPCTSTR |
32-bit pointer to constant character string if _UNICODE is defined |
lpszName |
h |
handle |
Handle to Windows object |
hWnd |
lpfn |
(*fn)() |
callbackFar pointer to CALLBACK function |
lpfnAbort |
常用Windows对象名称缩写
Windows 对象 |
例子变量 |
MFC类 |
例子对象 |
HWND |
hWnd; |
CWnd* |
pWnd; |
HDLG |
hDlg; |
CDialog* |
pDlg; |
HDC |
hDC; |
CDC* |
pDC; |
|
【返回顶部】
【打印本页】
【关闭窗口】
|
|
|