频 道 直 达 - 新闻 - 读书 - 培训 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

Visual C++ 入门精解(1)

作者: 管宁 出处:PConline  (  ) 砖  (  ) 好  评论 ( ) 条  进入论坛
更新时间:2005-09-22 10:02
关 键 词:C  I  s
阅读提示:VC++应用程序的开发主要有两种模式,一种是WIN API方式,另一种则是MFC方式,笔者在这里还是以讲解WIN API的相关内容为主线。

VC作为一个主流的开发平台一直深受编程爱好者的喜爱,严格的来说VC++不是门语言,虽然它和C++之间有密切的关系,如果形象点比喻的话,可以C++看作为一种“工业标准”,而VC++则是某种操作系统平台下的“厂商标准”,而“厂商标准”是在遵循“工业标准”的前提下扩展而来的。

VC++应用程序的开发主要有两种模式,一种是WIN API方式,另一种则是MFC方式,传统的WIN API开发方式比较繁琐,而MFC则是对WIN API再次封装,所以MFC相对于WIN API开发更具备效率优势,但为了对WINDOWS开发有一个较为全面细致的认识,笔者在这里还是以讲解WIN API的相关内容为主线。

要想学习好VC必须具备良好的C/C++的基础,必要的英语阅读能力也是必不可少的,因为大量的技术文档多以英文形式发布。

第一部分:VC++中的对象的命名规则、常用宏定义的命名,以及VC++下的数据类型。(注:这部分简单浏览即可。)

匈牙利命名法规则

一般情况下,变量的取名方式为:

+ +

范围前缀_,类型前缀_,限定词。

特殊的类型命名,前缀表示:

类、接口

前缀   

类型

例子

备注

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;

HGDIOBJ

hGdiObj;

CGdiObject*

pGdiObj;

HPEN

hPen;

CPen*

pPen;

HBRUSH

hBrush;

CBrush*

pBrush;

HFONT

hFont;

CFont*

pFont;

HBITMAP

hBitmap;

CBitmap*

pBitmap;

HPALETTE

hPalette;

CPalette*

pPalette;

HRGN

hRgn;

CRgn*

pRgn;

HMENU

hMenu;

CMenu*

pMenu;

HWND

hCtl;

CStatic*

pStatic;

HWND

hCtl;

CButton*

pBtn;

HWND

hCtl;

CEdit*

pEdit;

HWND

hCtl;

CListBox*

pListBox;

HWND

hCtl;

CComboBox*

pComboBox;

Visual C++常用宏定义命名列表

前缀

符号类型

符号例子

范围

IDR_

标识多个资源共享的类型

IDR_MAINFRAME

1 to 0x6FFF

IDD_

对话框资源(Dialog)

IDD_SPELL_CHECK

1 to 0x6FFF

IDB_

位图资源(Bitmap)

IDB_COMPANY_LOGO

1 to 0x6FFF

IDC_

光标资源(Cursor)

IDC_PENCIL

1 to 0x6FFF

IDI_

图标资源(Icon)

IDI_NOTEPAD

1 to 0x6FFF

ID_IDM_

工具栏或菜单栏的命令项

ID_TOOLS_SPELLING

0x8000 to 0xDFFF

HID_

命令上下文帮助(Command Help context)

HID_TOOLS_SPELLING

0x18000 to 0x1DFFF

IDP_

消息框提示文字资源

IDP_INVALID_PARTNO

8 to 0xDFFF

HIDP_

消息框上下文帮助(Message-box Help context)

HIDP_INVALID_PARTNO

0x30008 to 0x3DFFF

IDS_

字符串资源(String)

IDS_COPYRIGHT

1 to 0x7FFF

IDC_

对话框内的控制资源(Control)

IDC_RECALC

8 to 0xDFFF

VISUAL C++ 下的数据类型

类型

含义

ATOM

Atom. For more information, see Atoms.

BOOL

Boolean variable (should be TRUE or FALSE).