匈牙利命名法

匈牙利命名法
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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章