匈牙利命名法

匈牙利命名法
MFC、句柄、控件及结构的命名规范

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

hPaltte

CPalette*

pPalette

HRGN

hRgn

CRgn*

pRgn

HMENU

hMenu

CMenu*

pMenu

HWND

hCtl

CState*

pState

HWND

hCtl

CButton*

pButton

HWND

hCtl

CEdit*

pEdit

HWND

hCtl

CListBox*

pListBox

HWND

hCtl

CComboBox*

pComboBox

HWND

hCtl

CScrollBar*

pScrollBar

HSZ

hszStr

CString

pStr

POINT

pt

CPoint

pt

SIZE

size

CSize

size

RECT

rect

CRect

rect

一般前缀命名规范

前缀

类型

实例

C

类或结构

CDocumentCPrintInfo

m_

成员变量

m_pDocm_nCustomers

?

?

?

变量命名规范

前缀

类型

描述

实例

ch

char

8位字符

chGrade

ch

TCHAR

如果_UNICODE定义,则为16位字符

chName

b

BOOL

布尔值

bEnable

n

int

整型(其大小依赖于操作系统)

nLength

n

UINT

无符号值(其大小依赖于操作系统)

nHeight

w

WORD

16位无符号值

wPos

l

LONG

32位有符号整型

lOffset

dw

DWORD

32位无符号整型

dwRange

p

*

指针

pDoc

lp

FAR*

远指针

lpszName

lpsz

LPSTR

32位字符串指针

lpszName

lpsz

LPCSTR

32位常量字符串指针

lpszName

lpsz

LPCTSTR

如果_UNICODE定义,则为32位常量字符串指针

lpszName

h

handle

Windows对象句柄

hWnd

lpfn

callback

指向CALLBACK函数的远指针

?

应用程序符号命名规范

前缀

符号类型

实例

范围

IDR_

不同类型的多个资源共享标识

IDR_MAIINFRAME

10x6FFF

IDD_

对话框资源

IDD_SPELL_CHECK

10x6FFF

HIDD_

对话框资源的Help上下文

HIDD_SPELL_CHECK

0x200010x26FF

IDB_

位图资源

IDB_COMPANY_LOGO

10x6FFF

IDC_

光标资源

IDC_PENCIL

10x6FFF

IDI_

图标资源

IDI_NOTEPAD

10x6FFF

ID_

来自菜单项或工具栏的命令

ID_TOOLS_SPELLING

0x80000xDFFF

HID_

命令Help上下文

HID_TOOLS_SPELLING

0x180000x1DFFF

IDP_

消息框提示

IDP_INVALID_PARTNO

80xDEEF

HIDP_

消息框Help上下文

HIDP_INVALID_PARTNO

0x300080x3DEFF

IDS_

串资源

IDS_COPYRIGHT

10x7EEF

IDC_

对话框内的控件

IDC_RECALC

80xDEEF

?

Microsoft MFC宏命名规范

名称

类型

_AFXDLL

唯一的动态连接库(Dynamic Link LibraryDLL)版本

_ALPHA

仅编译DEC Alpha处理器

_DEBUG

包括诊断的调试版本

_MBCS

编译多字节字符集

_UNICODE

在一个应用程序中打开Unicode

AFXAPI

MFC提供的函数

CALLBACK

通过指针回调的函数

库标识符命名法

标识符

值和含义

u

ANSIN)或UnicodeU

d

调试或发行:D = 调试;忽略标识符为发行。

静态库版本命名规范

描述

NAFXCWD.LIB

调试版本:MFC静态连接库

NAFXCW.LIB

发行版本:MFC静态连接库

UAFXCWD.LIB

调试版本:具有Unicode支持的MFC静态连接库

UAFXCW.LIB

发行版本:具有Unicode支持的MFC静态连接库

动态连接库命名规范

名称

类型

_AFXDLL

唯一的动态连接库(DLL)版本

WINAPI

Windows所提供的函数

?

?

?

?

Windows.h中新的命名规范

类型

定义描述

WINAPI

使用在API声明中的FAR PASCAL位置,如果正在编写一个具有导出API人口点的DLL,则可以在自己的API中使用该类型

CALLBACK

使用在应用程序回叫例程,如窗口和对话框过程中的FAR PASCAL的位置

LPCSTR

LPSTR相同,只是LPCSTR用于只读串指针,其定义类似(const char FAR*

UINT

可移植的无符号整型类型,其大小由主机环境决定(对于Windows NTWindows 9x32位);它是unsigned int的同义词

LRESULT

窗口程序返回值的类型

LPARAM

声明lParam所使用的类型,lParam是窗口程序的第四个参数

WPARAM

声明wParam所使用的类型,wParam是窗口程序的第三个参数

LPVOID

一般指针类型,与(void *)相同,可以用来代替LPSTR

?

表一:匈牙利命名法

前缀

类型

描述

实例

arr

Array

静态数组

arrPoint

b

BOOL

布尔值

bEnabled

by

unsigned char(BYTE)

8位无符号字符

byWeek

ch

Char

 8位字符

chGrade

tch

TCHAR

如果是_UNICODE,为16位字符

tchName

i/n

Int

整形(其大小依赖于操作系统)

iRange

u

UINT

无符号整形(其大小依赖于操作系统)

nLength

us

unsigned short

无符号短整形

usPort

w

WORD

16位无符号值

wParam

l

LONG

32位有符号整形

loffset

dw

DWORD

32位无符号整形

dwVolume

f

Float

4字节浮点数

fHigh

d

Double

8字节浮点数

dAmount

cy

CURRENCY

8字节货币类型

cySell

p

*

指针

pDoc

lp

FAR *

远指针

lpDoc

lpsz

LPSTR

32位字符串指针

lpszName

lpcsz

LPCSTR

32位常量字符串指针

lpcszName

lpctsz

LPCTSTR

如果_UNICODE定义,为32位常量字符串指针

lpctszName

bstr

BSTR

带有4字节长度前缀的w_chart数组

bstrMessage

pbstr

BSTR*

BSTR数据类型指针

pbstrMsg

str

String

CString类型的字符串

strMessage

och

OLECHAR

OLECHAR字符类型

ochX

osz

OLECHAR*

OLECHAR字符串类型

oszX

var

VARIANT

VARIANT数据类型

var

pvar

VARIANT*

VARIANT数据类型指针

pvar

sa

SAFEARRAY

SAFEARRAY数据类型

sa

psa

SAFEARRAY*

SAFEARRAY数据类型指针

psa

dlg

CDialog

Windows对话框

dlg

stc

CStatic

Windows静态文本控件

stc

edt

Cedit

Windows编辑框控件

edt

lsb

CListBox

Windows列表控件

lsb

btn

CButton

Windows按钮控件

btn

scb

CScrollBar

Windows滚动条控件

scb

spn

CSpinButtonCtrl

Windowswe微调按钮控件

spn

tab

CTabCtrl

Windows选项卡控件

tab

rtf

CRichEditCtrl

Windows富文本编辑框控件

rtf

sld

CSliderCtrl

Window滑块控件

sld

list

ClistCtrl

Windows列表控件

list

tre

CtreeCtrl

Windows树形控件

tre

dtc

CDateTimeCtrl

Windows时间选取器控件

dtc

prg

CProgressCtrl

Windows进度指示器控件

prg

cbo

CComboBox

Windows组合框控件

cbo

ils

CImageList

Windows图像列表

ils

tlb

CToolBarCtrl

Windows工具条控件

tlb

mnu

Cmenu

Windows菜单控件

mnu

sta

CStatusBar

Windows状态条控件

sta

wnd

CWnd

Windows窗口

wnd

cx

X

Windows X座标

cx

cy

Y

Windows Y座标

cy

pt

Cpoint

Windows点阵

hWnd

size

Csize

Windows尺寸

size

rect/rc

Crect

Windows矩形

rect

pen

Cpen

Windows画笔

pen

br

Cbrush

Windows刷子

br

fnt

Cfont

Windows字体

fnt

cr

COLORREF

Windows颜色值RGB

cr

PMp

Temp

 临时变量

PMpBuff

h

Handle

Windows对象句柄

hWnd

lpfn

Callback

指向CALLBACK函数的远指针

lpfnAbort

it/iter

iterator

迭代子

it

vect

std::vector

标准模板库

vect

map

std:map

标准模板库

map

deque

std:deque

标准模板库

deque

list

std:list

标准模板库

list

set

std:set

标准模板库

Set

multiset

std:multiset

标准模板库

multiset

multimap

std:multimap

标准模板库

multimap

 

*      指针类型的变量,必须加上前缀"p",如:int* pnValue;

*      全局(静态)变量的命名规则同第一条的规定,并且必须加上前缀"g_"

*      类成员(静态)变量的命名规则同第一条的规定,并且必须加上前缀"m_"

*      模块(函数/过程)内部的重要变量命名遵循第一条的规定。

*      模块(函数/过程)内部的静态变量命名遵循第一条的规定,并且加上前缀"s_"

*      其余变量在不损害程序易读易懂原则的基础上酌情处理。这些变量通常是模块内的临时变量,如循环控制变量、数组的下标等,它们可用缩写进行简化处理,如:int i;

3.1.1.1               常量命名规则

*      (#define)或者常量修饰符(const):大写字母组成的名词词组,单词间用下划线作为连接符,如:#define INVALID_CLOSE 0;  const double INVALID_CLOSE = double(0);

*      枚举类型(enum):此时的命名规则同"变量命名的一般性规则",可参考MFCADO等的命名方式。

3.1.1.2             函数命名规则

单词构成的动宾词组,每个单词首字母大写,其余字母小写。如:void DrawLine ( void );

3.1.1.3             类命名规则

*      类的原型,是前缀"C"加单词构成的动宾词组,每个单词首字母大写,其余字母小写。如:class CStockPacket;     class  CPacket;

*      类的实例变量,采用小写首字母缩写的方式定义,如:CStockPacket sp;

*      在对类的成员变量和成员函数定义时,要加以分类,并界定相应的存取权限(参见表二:类成员的分类描述

表二:类成员的分类描述

分类描述

存取权限(依实际应用而定)

// Constructors

Public

// Attributes

Private

// Operations(对于com组件是//Methods

Public

// Overridables

Protected

// Implementation

Private

3.1.1.4             结构命名规则

*      结构的原型采用组合词的方式定义,并且全部采用大写字符的形式。如:

typedef struct tagStockTrans

{

    DWORD       dwOpen;

    ...

}   STOCKTRANS;

*      结构的实例变量,采用小写首字母缩写的方式定义,如:STOCKTRANS st;

 

发布了5 篇原创文章 · 获赞 4 · 访问量 13万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章