• 匈牙利命名法——命名规范(知道这些再看Windows程序就轻松多了)


    匈牙利命名法
    著名的命名规则当推Microsoft公司的"匈牙利"法,该命名规则的主要思想是"在变量和函数名中加入前缀以增进人们对程序的理解"。例如所有的字符变量均以ch为前缀,若是指针变量则追加前缀p。如果一个变量由ppch开头,则表明它是指向字符指针的指针。

    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

    变量命名规范 

    前缀 类型 描述 实例
    ch char 8位字符 chGrade
    ch  TCHAR 如果_UNICODE定义,则为16位字符 chName
    b BOOL 布尔值 bEnable
    int 整型(其大小依赖于操作系统) nLength
    UINT  无符号值(其大小依赖于操作系统) nHeight
    WORD  16位无符号值 wPos
    LONG  32位有符号整型 lOffset
    dw  DWORD  32位无符号整型  dwRange
    指针 pDoc
    lp  FAR*  远指针  lpszName
    lpsz  LPSTR  32位字符串指针 lpszName
    lpsz  LPCSTR  32位常量字符串指针 lpszName
    lpsz  LPCTSTR  如果_UNICODE定义,则为32位常量字符串指针 lpszName
    handle  Windows对象句柄 hWnd
    lpfn  callback 指向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
    AFXAPI  MFC提供的函数
    CALLBACK 通过指针回调的函数 

     

    库标识符命名法 

    标识符 值和含义
    ANSI(N)或Unicode(U)
    调试或发行: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 NT和Windows 9x为32位);它是unsigned int的同义词
    LRESULT 窗口程序返回值的类型
    LPARAM 声明lParam所使用的类型,lParam是窗口程序的第四个参数
    WPARAM 声明wParam所使用的类型,wParam是窗口程序的第三个参数
    LPVOID 一般指针类型,与(void *)相同,可以用来代替LPSTR 
     
     
  • 相关阅读:
    10000个线程更新同一行数据
    CountDownLatchTest
    创建 oracle dblin
    extjs日期控件使用
    JAVA Date超强工具类,可直接取代util.Date使用
    JSP&Servlet学习手册
    JAVA 文本 TXT 操作工具类
    Leetcode 526.优美的排列
    Leetcode 525.连续数组
    Leetcode 523.连续的子数组和
  • 原文地址:https://www.cnblogs.com/xymqx/p/3242510.html
Copyright © 2020-2023  润新知