VC++常用命名法和宏定义_c++ 宏命名-程序员宅基地

技术标签: c++  MFC  vc  

匈牙利命名法规则

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

<scope_> + <prefix_> + <qualifier>。

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

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

  类、接口

前缀   

类型

例子

备注

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_29796317/article/details/74357548

智能推荐

sql注入解决方案_if test= sql注入怎么改-程序员宅基地

文章浏览阅读773次。sql注入解决方案mybatis Sql:<if test="safetyPageParam.caseStatus !=null and safetyPageParam.caseStatus != ''"> AND t2.channel_status in (${safetyPageParam.caseStatus})</if>问题: 使..._if test= sql注入怎么改

Properties转换成Map_properties转map-程序员宅基地

文章浏览阅读1.2w次。Properties转换成Mapimport java.util.HashMap;import java.util.Map;import java.util.Properties;import java.util.Set;public class Test { public static void main(String args[]){ Properties prope_properties转map

抓紧收藏学习,新手小白,如何做好短视频自媒体?_在这个人人都是自媒体的时代,只有内容的吸引才能-程序员宅基地

文章浏览阅读165次。在这个人人都是自媒体的时代,每个人都可以通过自媒体展示自己,一部分人做自媒体的动力就是想展现自己好的一面,分享内容,既可以满足自己的心理需求,还能有不错的收入。还有一种人做短视频就是为了赚钱,刚开始需要学习很多东西,也并不是一上来就可以赚钱的。(多用点空闲时间,把它当成自己的一种兴趣爱好去做,只要你肯用心花时间去做,最终肯定会有不错的收益)很多新手小白在刚开始进入短视频行业中时,不知道该如何起步,今天大周就来给大家简单分析一下。无论你是兴趣爱好还是纯粹的想赚钱,刚开始都需要注意这几点:一、用适合自己_在这个人人都是自媒体的时代,只有内容的吸引才能

x264的哈达玛变换(hadamard)的实现和优化-程序员宅基地

文章浏览阅读1.2k次。hadamard 变换理论 很多网页都有介绍,我就不拷贝了,给两个链接。 下面的是harvey mudd college 的一个“计算机图像处理分析”课件中哈达玛变换的一个章节 (JASON GARRETT-GLASER x264的主开发就是在这个学校上过学阿。很棒的一个..._fast pseudo-hadamard transform

LNMP项目部署-程序员宅基地

文章浏览阅读2.7k次,点赞5次,收藏20次。LNMP项目部署介绍项目的生命周期策划:老板+产品+UI设计实施:前端开发(客户端页面)+后端开发(ava php python等)+测试上线:运维维护:运维结束运维工作内容项目策划,实施之初,进行准备工作,学习对应架构和方案服务器上搭建代码版本控制器为测试人员搭建测试环境部署项目上线项目后期维护分布式集群集群:多台服务器在一起作同样的事分布式 :多台服务器在一起作不同的事常用架构负债均衡LB高可用HA数据库主从复制M-S读写分离R-W缓存中_lnmp项目部署

Oracle EBS - What happening when executing adcfgclone.pl in DB Tier as well as Apps Tier?_adcrdb.sh文件下载-程序员宅基地

文章浏览阅读1.2k次。adcfgclone.pl - This script will performs the clone configuration in the target machine.During this configuration phase will reconfigure the copied instance after gathering the required information.ad_adcrdb.sh文件下载

随便推点

C#产生随机数之一 生成真随机数_c# random seed-程序员宅基地

文章浏览阅读4.8w次,点赞10次,收藏59次。Random类是一个产生伪随机数字的类,它的构造函数有两种,一个是直接New Random(),另外一个是New Random(Int32 Seed),前者是根据触发那刻的系统时间做为种子,来产生一个随机数字,后者可以自己设定触发的种子。   New Random(Int32 Seed)一般都是用UnCheck((Int)DateTime.Now.Ticks)做为参数种子,因此如果计算机运行速度很_c# random seed

LIRe 源代码分析 6:检索(ImageSearcher)[以颜色布局为例]-程序员宅基地

文章浏览阅读5.7k次,点赞3次,收藏2次。前几篇文章介绍了LIRe 的基本接口,以及建立索引的过程。现在来看一看它的检索部分(ImageSearcher)。不同的方法的检索功能的类各不相同,它们都位于“net.semanticmetadata.lire.impl”中,如下图所示:

oracle9中使用存储过程处理CLOB文本流_orcale存储过程 select into clob-程序员宅基地

文章浏览阅读1.2k次。/*====================================================================== PROGRAM getClob.sql AUTHOR 李晓辉====================================================================== CHANGE L_orcale存储过程 select into clob

工作流调度器-程序员宅基地

文章浏览阅读194次。1. 工作流调度系统产生背景一个完整的数据分析系统通常都是由大量任务单元组成:shell脚本程序,java程序,mapreduce程序、hive脚本等。各个任务单元之间存在时间先后依赖关系。为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行;2. 工作流调度实现方式简单的任务调度:直接使用linux的crontab来定义,但是缺点也是比较明显,无法设置依赖。复杂的任务调度:自主开...

Error: docker-ce-cli conflicts with 2:docker-1.13.1-209.git7d71120.el7.centos.x86_64_错误:docker-ce conflicts with 2:docker-1.13.1-209.gi-程序员宅基地

文章浏览阅读4.6k次。CentOS7中安装k8s:yum install kubernetes安装K8S出现如下错误提示:Error: docker conflictsError: docker-ce-cli conflicts with 2:docker-1.13.1-209.git7d71120.el7.centos.x86_64 You could try using --skip-broken to work around the problem You could try running: rpm -Va _错误:docker-ce conflicts with 2:docker-1.13.1-209.git7d71120.el7.centos.x86_

Mycat JVM appears hung: Timed out waiting for signal from JVM.-程序员宅基地

文章浏览阅读8.1k次。Mycat配置支持的JVM参数是支持1.8_x之前的版本,当JDK升级到1.8_x以后在大数据量操作的时候JVM内存的分配就会存在问题,我们需要做相应的调整以适应这种参数改变,JDK 1.8_x不支持Permgen 。参数需要做的调整为-XX:PermSize=64m -XX:MaxPermSize=128m 变成 -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m 否则在JDK 1.8_x中不生效。_jvm appears hung: timed out waiting for signal from jvm.