1. 程式人生 > >Windows及VC程式設計命名規則

Windows及VC程式設計命名規則

小結:匈牙利命名法

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 類或結構 CDocument,CPrintInfo 
m_ 成員變數 m_pDoc,m_nCustomers 


變數命名規範字首 型別 描述 例項 
chchar 8位字元 chGrade 
chTCHAR 如果_UNICODE定義,則為16位字元 chName 
bBOOL 布林值 bEnable 
nint 整型(其大小依賴於作業系統) nLength 
nUINT無符號值(其大小依賴於作業系統) nHeight 
wWORD 16位無符號值 wPos 
lLONG 32位有符號整型 lOffset 
dwDWORD 32位無符號整型 dwRange 
p* 指標 pDoc 
lpFAR* 遠指標 lpszName 
lpszLPSTR 32位字串指標 lpszName 
lpszLPCSTR 32位常量字串指標 lpszName 
lpszLPCTSTR 如果_UNICODE定義,則為32位常量字串指標 lpszName 
hhandle Windows物件控制代碼 hWnd 
lpfncallback 指向CALLBACK函式的遠指標 


資源型別命名規範字首
符號型別 例項 範圍 
IDR_不同型別的多個資源共享標識IDR_MAIINFRAME 1~0x6FFF 
IDD_對話方塊資源IDD_SPELL_CHECK 1~0x6FFF 
HIDD_對話方塊資源的Help上下文HIDD_SPELL_CHECK 0x20001~0x26FF 
IDB_點陣圖資源IDB_COMPANY_LOGO 1~0x6FFF 
IDC_游標資源IDC_PENCIL 1~0x6FFF 
IDI_圖示資源IDI_NOTEPAD 1~0x6FFF 
ID_來自選單項或工具欄的命令ID_TOOLS_SPELLING 0x8000~0xDFFF 
HID_命令Help上下文HID_TOOLS_SPELLING 0x18000~0x1DFFF 
IDP_訊息框提示IDP_INVALID_PARTNO 8~0xDEEF 
HIDP_訊息框Help上下文HIDP_INVALID_PARTNO 0x30008~0x3DEFF 
IDS_串資源IDS_COPYRIGHT 1~0x7EEF 
IDC_對話方塊內的控制元件IDC_RECALC 8~0xDEEF 


Microsoft MFC巨集命名規範
名稱 型別 
_AFXDLL唯一的動態連線庫(Dynamic Link Library,DLL)版本 
_ALPHA僅編譯DEC Alpha處理器 
_DEBUG包括診斷的除錯版本 
_MBCS編譯多位元組字符集 
_UNICODE在一個應用程式中開啟Unicode 
AFXAPIMFC提供的函式 
CALLBACK通過指標回撥的函式 


庫識別符號命名法識別符號 值和含義 
uANSI(N)或Unicode(U) 
d除錯或發行:D = 除錯;忽略識別符號為發行。 


靜態庫版本命名規範庫 描述 
NAFXCWD.LIB除錯版本:MFC靜態連線庫 
NAFXCW.LIB發行版本:MFC靜態連線庫 
UAFXCWD.LIB除錯版本:具有Unicode支援的MFC靜態連線庫 
UAFXCW.LIB發行版本:具有Unicode支援的MFC靜態連線庫 


動態連線庫命名規範名稱 型別 
_AFXDLL唯一的動態連線庫(DLL)版本 
WINAPIWindows所提供的函式 


Windows.h中新的命名規範型別 定義描述 
WINAPI使用在API宣告中的FAR PASCAL位置,如果正在編寫一個具有匯出API人口點的DLL,則可以在自己的API中使用該型別 
CALLBACK使用在應用程式回叫例程,如視窗和對話方塊過程中的FAR PASCAL的位置 
LPCSTR與LPSTR相同,只是LPCSTR用於只讀串指標,其定義類似(const char FAR*) 
UINT可移植的無符號整型型別,它是unsigned int的同義詞 
LRESULT視窗程式返回值的型別 
LPARAM宣告lParam所使用的型別,lParam是視窗程式的第四個引數 
WPARAM宣告wParam所使用的型別,wParam是視窗程式的第三個引數 
LPVOID一般指標型別,與(void *)相同,可以用來代替LPSTR