VC++6.0常用资源标识符前缀
- 格式:docx
- 大小:18.97 KB
- 文档页数:2
一走进Visual C++Visual C++作为一个功能非常强大的可视化应用程序开发工具,是计算机界公认的最优秀的应用开发工具之一。
Microsoft的基本类库MFC使得开发Windows应用程序比以往任何时候都要容易。
本光盘教学软件的目的就是为了让你学会在Visual C++环境下,利用微软的基本类库MFC开发出功能强大的Windows应用程序。
在本章节的内容当中,我们将向您介绍使用VC开发软件需要用到的一些基本概念,使用MFC进行编程的基本特点,以及VISUAL C++集成开发环境提供的一系列编程辅助工具——WIZARD的使用方法。
1 理解VC工程Visual C++作为一种程序设计语言,它同时也是一个集成开发工具,提供了软件代码自动生成和可视化的资源编辑功能。
在使用Visual C++开发应用程序的过程中,系统为我们生成了大量的各种类型的文件,在本节中将要详细介绍Visual C++中这些不同类型的文件分别起到什么样的作用,在此基础上对Visual C++如何管理应用程序所用到的各种文件有一个全面的认识。
首先要介绍的是扩展名为dsw的文件类型,这种类型的文件在VC中是级别最高的,称为Workspace文件。
在VC中,应用程序是以Project的形式存在的,Project文件以.dsp扩展名,在Workspace文件中可以包含多个Project,由Workspace文件对它们进行统一的协调和管理。
与dsw类型的Workspace文件相配合的一个重要的文件类型是以opt为扩展名的文件,这个文件中包含的是在Workspace文件中要用到的本地计算机的有关配置信息,所以这个文件不能在不同的计算机上共享,当我们打开一个Workspace文件时,如果系统找不到需要的opt类型文件,就会自动地创建一个与之配合的包含本地计算机信息的opt文件。
上面提到Project文件的扩展名是dsp,这个文件中存放的是一个特定的工程,也就是特定的应用程序的有关信息,每个工程都对应有一个dsp类型的文件。
vc++6.0学习整理在windows里定义数据类型的一些标准前缀前缀数据类型c 字符(char)s 短整数(short)cb 用于定义对象(一般为一个结构)尺寸的整数 n 整数(integer)sz 以’\0’结尾的字符串b 字节i int(整数)x 短整数(坐标x)y 短整数(坐标y)f boolw 字(word,无符号短整数)l 长整数(long)h handle(无符号int)m_ 类成员变量fn 函数(function)dw 双字(dword,无符号长整数) 消息主要有三种,windows消息,控件消息和命令消息。
1、windows消息所有wincows消息前缀是wm_。
常见的有wm_char消息,鼠标消息、wm_paint消息、wm_timer消息。
wm_char消息:按下键盘上任意键产生的消息2、鼠标消息wm_mousemove 移动鼠标wm_lvbuttondown 按下鼠标左键wm_lbuttonup 释放鼠标左键wm_lbuttondblclk 双击鼠标左键wm_rvbuttondblclk 按下鼠标右键wm_rbuttonup 释放鼠标右键wm_rbuttondblclk 双击鼠标右键wm_mvbuttondowm 按下鼠标中键wm_mbuttonup 释放鼠标中键wm_mbuttondblclk 双击鼠标中键 3、系统发送wm_paint消息系统会在多个不同的时机发送 wm_paint 消息:当第一次创建一个窗口时,当改变窗口的大小时,当把窗口从另一个窗口背后移出时,当最大化或最小化窗口时,等等,这些动作都是由系统管理的,应用只是被动地接收该消息,在消息处理函数中进行绘制操作;大多数的时候应用也需要能够主动引发窗口中的绘制操作,比如当窗口显示的数据改变的时候,这一般是通过invalidaterect 和 invalidatergn 函数来完成的。
4、控件消息和控件通知消息一、建立工程file -> new -> projects -> (选mfc exe : 为mfc工程;选 win32 consoleapplication :为控制空工程;win32 application 为sdk工程) ->在右边输入工程名 -> 一系列 next 即可(可都默认)。
第4章资源和资源编辑器VC++集成开发环境提供了资源编辑器,支持窗口应用程序的可视化开发,自动生成和管理资源代码。
本章将介绍VC++所支持的资源,及使用资源编辑器编辑资源的方法。
学习了本章,你将学会资源编辑器的使用,在应用程序中操作菜单、工具栏和状态栏。
4.1资源与资源编辑器4.1.1资源和资源符号资源作为一种界面成分,可以从中获取信息并在其中执行某些动作。
VC++6.0可以处理的资源有加速键(Accelerator)、位图(Bitmap)、光标(Cursor)、对话框(Dialog Box)、图标(Icon)、菜单(Menu)、串表(String Table)、工具栏(Toolbar)和版本信息(V ersion Information)等。
VC++在内部使用资源符号来标识资源,资源符号是映射到某个整数值的一串字符,是一种标识符。
从而使资源能够以字符串的方式被引用。
每当创建一个新的资源或资源对象时,系统就会为其提供一个默认的资源符号名称并赋一个整数值,该定义保存在resource.h文件中。
Develop Studio提供了资源符号的查看和编辑工具,使用菜单命令View->Resource Symbol来打开资源符号浏览器Resource Symbols对话框,如图4-1所示,列表中列出了当前项目正在使用的资源符号的名称和相应的整数值。
若选中“Show read-only symbols”复选框,则只读状态和未被使用的资源符号也一并显示出来。
图4-1 Resource Symbols对话框在资源符号浏览器Resource Symbols对话框中,可以方便地新建、更改和删除资源符号,单击按钮“View Use”自动进入到某个资源对应的编辑器中。
在同一项目中,资源符号不能重复。
资源符号的命名通常带有描述性的前缀来表示所代表的资源或对象类型,表4-1是VC++6.0中提供的一些定义资源符号常用的前缀。
vc命名规则a Array 数组b BOOL (int) 布尔(整数)by Unsigned Char (Byte) 无符号字符(字节)c Char 字符(字节)cb Count of bytes 字节数cr Color reference value 颜色(参考)值cx Count of x (Short) x的集合(短整数) dw DWORD (unsigned long) 双字(无符号长整数)f Flags (usually multiple bit values) 标志(一般是有多位的数值)fn Function 函数g_ global 全局的h Handle 句柄i Integer 整数l Long 长整数lp Long pointer 长指针m_ Data member of a class 一个类的数据成员n Short int 短整数p Pointer 指针s String 字符串sz Zero terminated String 以0结尾的字符串tm Text metric 文本规则u Unsigned int 无符号整数ul Unsigned long (ULONG) 无符号长整数w WORD (unsigned short) 无符号短整数x,y x, y coordinates (short) 坐标值/短整数v void 空有关项目的全局变量用g_开始,类成员变量用m_,局部变量若函数较大则可考虑用l_用以显示说明其是局部变量。
前缀类型例子g_ 全局变量g_ServersC 类或者结构体CDocument,CPrintInfom_ 成员变量m_pDoc,m_nCustomersVC常用前缀列表:前缀类型描述例子ch char 8位字符chGradech TCHAR 16位UNICODE类型字符chNameb BOOL 布尔变量bEnabledn int 整型(其大小由操作系统决定)nLengthn UINT 无符号整型(其大小由操作系统决定)nLengthw WORD 16位无符号整型wPosl LONG 32位有符号整型lOffsetdw DWORD 32位无符号整型dwRangep * Ambient memory model pointer 内存模块指针,指针变量pDoclp FAR* 长指针lpDoclpsz LPSTR 32位字符串指针lpszNamelpsz LPCSTR 32位常量字符串指针lpszNamelpsz LPCTSTR 32位UNICODE类型常量指针lpszNameh handle Windows对象句柄hWndlpfn (*fn)() 回调函数指针Callback Far 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;VC常用宏定义命名列表:前缀符号类型符号例子范围IDR_ 标识多个资源共享的类型IDR_MAINFRAME 1~0x6FFFIDD_ 对话框资源(Dialog)IDD_SPELL_CHECK 1~ 0x6FFFHIDD_ 基于对话框的上下文帮助HIDD_SPELL_CHECK 0x20001~0x26FFIDB_ 位图资源(Bitmap)IDB_COMPANY_LOGO 1~0x6FFFIDC_ 光标资源(Cursor)IDC_PENCIL 1~0x6FFFIDI_ 图标资源(Icon)IDI_NOTEPAD 1~0x6FFFID_、IDM_ 工具栏或菜单栏的命令项ID_TOOLS_SPELLING 0x8000~0xDFFFHID_ 命令上下文帮助HID_TOOLS_SPELLING 0x18000~0x1DFFFIDP_ 消息框提示文字资源IDP_INVALID_PARTNO 8~0xDFFFHIDP_ 消息框上下文帮助HIDP_INVALID_PARTNO 0x30008~0x3DFFFIDS_ 字符串资源(String)IDS_COPYRIGHT 1~0x7FFFIDC_ 对话框内的控制资源IDC_RECALC 8~0xDFFFMicrosoft MFC宏命名规范名称类型_AFXDLL 唯一的动态连接库(Dynamic Link Library,DLL)版本_ALPHA 仅编译DEC Alpha处理器_DEBUG 包括诊断的调试版本_MBCS 编译多字节字符集_UNICODE 在一个应用程序中打开UnicodeAFXAPI MFC提供的函数CALLBACK 通过指针回调的函数库标识符命名法标识符值和含义u ANSI(N)或Unicode(U)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 NT和Windows 9x为32位);它是unsigned int的同义词LRESULT 窗口程序返回值的类型LPARAM 声明lParam所使用的类型,lParam是窗口程序的第四个参数WPARAM 声明wParam所使用的类型,wParam是窗口程序的第三个参数LPVOID 一般指针类型,与(void *)相同,可以用来代替LPSTRMSDN中给出了一段遵守代码风格和匈牙利命名法的代码参考如下:1 #include “sy.h”2 extern int *rgwDic;3 extern int bsyMac;4 struct SY *PsySz(char sz[])6 {7 char *pch;8 int cch;9 struct SY *psy, *PsyCreate();10 int *pbsy;11 int cwSz;12 unsigned wHash=0;13 pch=sz;14 while (*pch!=0)15 wHash=wHash<>11+*pch++;16 cch=pch-sz;17 pbsy=&rgbsyHash[(wHash&077777)%cwHash];18 for (; *pbsy!=0; pbsy = &psy->bsyNext)19 {20 char *szSy;21 szSy= (psy=(struct SY*)&rgwDic[*pbsy])->sz;22 pch=sz;23 while (*pch==*szSy++)24 {25 if (*pch++==0)26 return (psy);27 }28 }29 cwSz=0;30 if (cch>=2)31 cwSz=cch-2/sizeof(int)+1;32 *pbsy=(int *)(psy=PsyCreate(cwSY+cwSz))-rgwDic;33 Zero((int *)psy,cwSY);34 bltbyte(sz, psy->sz, cch+1);35 return(psy);36 }。
VC++6.0系统开发环境在Windows 98/2000/XP操作系统中正确安装了Visual C++ 6.0后,可以启动Visual C++6.0系统。
第一次运行时,将显示出“Tip of the Day”对话框,单击“Next”命令按钮,可看到有关各种操作的提示;如果不选中“Show tips at startup”复选框,那么以后运行Visual C++ 6.0时将不再出现此对话框。
单击“Close”命令按钮关闭此对话框,进入Visual C++6.0系统开发环境。
1 开发环境的菜单功能Visual C++6.0开发环境界面由标题栏、菜单栏、工具栏、项目工作区窗口、文档窗口、输出窗口以及状态栏等组成。
在开发环境界面中,可以看到在它的上方排列着一系列菜单,如图1所示,而每一个菜单下都有各自的菜单命令。
在进一步与开发环境打交道之前,先了解各个菜单命令的基本功能是很有必要的,因为大部分的操作都是通过菜单来完成的。
图 1 VC++主菜单栏1. File莱单File菜单中的命令主要用来对文件和项目进行操作,如“新建”、“打开”、“保存”、“打印”等。
其中各项命令的功能描述如表1所示。
表 1 File菜单命令的快捷键及功能描述菜单命令快捷键功能描述New Ctrl+N 创建一个新项目或文件Open Ctrl+O 打开已有的文件Close 关闭当前被打开的文件Open Workspace 打开一个已有的项目Save Workspace 保存当前项目Close Workspace 关闭当前项目Save Ctrl+S 保存当前文件Save As 将当前文件用新文件名保存Save All 保存所有打开的文件Page Setup 文件打印的页设置(续表)菜单命令快捷键功能描述Print Ctrl+P 打印当前文件内容或选定的当前内容Recent Files 选择打开最近的文件Recent Workspace 选择打开最近的项目Exit 退出Visual C++6.0开发环境2. Edit菜单Edit菜单中的命令用来使用户方便快捷地编辑文件内容,如进行删除、复制等操作,其中大多数命令功能与Windows中标准字处理程序的编辑命令一致,各项命令的快捷键及它们的功能描述如表2所示。
C 语言中的前缀是以"前缀" 形式出现在标识符(如变量名、函数名等)的开始部分。
前缀通常用来表示标识符的类型、作用或者其他特定的含义。
以下是一些常见的 C 语言前缀及其含义:
1. "int" 前缀:表示整数类型(integer),例如"intNum" 表示整数类型的变量。
2. "char" 前缀:表示字符类型(character),例如"charName" 表示字符类型的变量。
3. "float" 前缀:表示单精度浮点类型,例如"floatNum" 表示单精度浮点数的变量。
4. "double" 前缀:表示双精度浮点类型,例如"doubleNum" 表示双精度浮点数的变量。
5. "void" 前缀:表示无类型(void),常用于函数返回类型,例如"void printMessage()" 表示返回类型为无的函数。
6. "struct" 前缀:表示结构体(structure),例如"struct Person" 表示一个名为Person 的结构体类型。
C 语言前缀是为了提高代码的可读性、清晰性和可维护性而引入的。
通过使用有意义的前缀,可以更好地理解代码的含义和逻辑。
请注意,在使用前缀时,应符合命名规范,并避免与 C 语言的关键字或库函数重名。
VC 6.0 /VC++库函数与头文件分类函数,所在函数库为ctype.hint isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9')返回非0值,否则返回0int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F)返回非0值,否则返回0int isdigit(int ch) 若ch是数字('0'-'9')返回非0值,否则返回0int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否则返回0int islower(int ch) 若ch是小写字母('a'-'z')返回非0值,否则返回0int isprint(int ch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否则返回0int ispunct(int ch) 若ch是标点字符(0x00-0x1F)返回非0值,否则返回0int isspace(int ch) 若ch是空格(' '),水平制表符('\t'),回车符('\r'),走纸换行('\f'),垂直制表符('\v'),换行符('\n')返回非0值,否则返回0int isupper(int ch) 若ch是大写字母('A'-'Z')返回非0值,否则返回0int isxdigit(int ch) 若ch是16进制数('0'-'9','A'-'F','a'-'f')返回非0值,否则返回0int tolower(int ch) 若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z')int toupper(int ch) 若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z')数学函数,所在函数库为math.h、stdlib.h、string.h、float.hint abs(int i) 返回整型参数i的绝对值double cabs(struct complex znum) 返回复数znum的绝对值double fabs(double x) 返回双精度参数x的绝对值long labs(long n) 返回长整型参数n的绝对值double exp(double x) 返回指数函数ex的值double frexp(double value,int *eptr) 返回value=x*2n中x的值,n存贮在eptr中double ldexp(double value,int exp); 返回value*2exp的值double log(double x) 返回logex的值double log10(double x) 返回log10x的值double pow(double x,double y) 返回xy的值double pow10(int p) 返回10p的值double sqrt(double x) 返回+√x的值double acos(double x) 返回x的反余弦cos-1(x)值,x为弧度double asin(double x) 返回x的反正弦sin-1(x)值,x为弧度double atan(double x) 返回x的反正切tan-1(x)值,x为弧度double atan2(double y,double x) 返回y/x的反正切tan-1(x)值,y的x为弧度double cos(double x) 返回x的余弦cos(x)值,x为弧度double sin(double x) 返回x的正弦sin(x)值,x为弧度double tan(double x) 返回x的正切tan(x)值,x为弧度double cosh(double x) 返回x的双曲余弦cosh(x)值,x为弧度double sinh(double x) 返回x的双曲正弦sinh(x)值,x为弧度double tanh(double x) 返回x的双曲正切tanh(x)值,x为弧度double hypot(double x,double y) 返回直角三角形斜边的长度(z),x和y为直角边的长度,z2=x2+y2 double ceil(double x) 返回不小于x的最小整数double floor(double x) 返回不大于x的最大整数void srand(unsigned seed) 初始化随机数发生器int rand() 产生一个随机数并返回这个数double poly(double x,int n,double c[])从参数产生一个多项式double modf(double value,double *iptr)将双精度数value分解成尾数和阶double fmod(double x,double y) 返回x/y的余数double frexp(double value,int *eptr) 将双精度数value分成尾数和阶double atof(char *nptr) 将字符串nptr转换成浮点数并返回这个浮点数double atoi(char *nptr) 将字符串nptr转换成整数并返回这个整数double atol(char *nptr) 将字符串nptr转换成长整数并返回这个整数char *ecvt(double value,int ndigit,int *decpt,int *sign)将浮点数value转换成字符串并返回该字符串char *fcvt(double value,int ndigit,int *decpt,int *sign)将浮点数value转换成字符串并返回该字符串char *gcvt(double value,int ndigit,char *buf)将数value转换成字符串并存于buf中,并返回buf的指针char *ultoa(unsigned long value,char *string,int radix)将无符号整型数value转换成字符串并返回该字符串,radix为转换时所用基数char *ltoa(long value,char *string,int radix)将长整型数value转换成字符串并返回该字符串,radix为转换时所用基数char *itoa(int value,char *string,int radix)将整数value转换成字符串存入string,radix为转换时所用基数double atof(char *nptr) 将字符串nptr转换成双精度数,并返回这个数,错误返回0int atoi(char *nptr) 将字符串nptr转换成整型数, 并返回这个数,错误返回0long atol(char *nptr) 将字符串nptr转换成长整型数,并返回这个数,错误返回0double strtod(char *str,char **endptr)将字符串str转换成双精度数,并返回这个数,long strtol(char *str,char **endptr,int base)将字符串str转换成长整型数,并返回这个数, int matherr(struct exception *e)用户修改数学错误返回信息函数(没有必要使用)double _matherr(_mexcep why,char *fun,double *arg1p,double *arg2p,double retval)用户修改数学错误返回信息函数(没有必要使用)unsigned int _clear87() 清除浮点状态字并返回原来的浮点状态void _fpreset() 重新初使化浮点数学程序包unsigned int _status87() 返回浮点状态字目录函数,所在函数库为dir.h、dos.hint chdir(char *path) 使指定的目录path(如:"C:\\WPS")变成当前的工作目录,成功返回0int findfirst(char *pathname,struct ffblk *ffblk,int attrib)查找指定的文件,成功返回0pathname为指定的目录名和文件名,如"C:\\WPS\\TXT"ffblk为指定的保存文件信息的一个结构,定义如下:┏━━━━━━━━━━━━━━━━━━┓┃struct ffblk ┃┃{ ┃┃ char ff_reserved[21]; /*DOS保留字*/┃┃ char ff_attrib; /*文件属性*/ ┃┃ int ff_ftime; /*文件时间*/ ┃┃ int ff_fdate; /*文件日期*/ ┃┃ long ff_fsize; /*文件长度*/ ┃┃ char ff_name[13]; /*文件名*/ ┃┃} ┃┗━━━━━━━━━━━━━━━━━━┛attrib为文件属性,由以下字符代表┏━━━━━━━━━┳━━━━━━━━┓┃FA_RDONLY 只读文件┃FA_LABEL 卷标号┃┃FA_HIDDEN 隐藏文件┃FA_DIREC 目录┃┃FA_SYSTEM 系统文件┃FA_ARCH 档案┃┗━━━━━━━━━┻━━━━━━━━┛例:struct ffblk ff;findfirst("*.wps",&ff,FA_RDONLY);int findnext(struct ffblk *ffblk) 取匹配finddirst的文件,成功返回0 void fumerge(char *path,char *drive,char *dir,char *name,char *ext)此函数通过盘符drive(C:、A:等),路径dir(\TC、\BC\LIB等),文件名name(TC、WPS等),扩展名ext(.EXE、.COM等)组成一个文件名存与path中.int fnsplit(char *path,char *drive,char *dir,char *name,char *ext)此函数将文件名path分解成盘符drive(C:、A:等),路径dir(\TC、\BC\LIB等),文件名name(TC、WPS等),扩展名ext(.EXE、.COM等),并分别存入相应的变量中. int getcurdir(int drive,char *direc) 此函数返回指定驱动器的当前工作目录名称drive 指定的驱动器(0=当前,1=A,2=B,3=C等)direc 保存指定驱动器当前工作路径的变量成功返回0char *getcwd(char *buf,iint n) 此函数取当前工作目录并存入buf中,直到n个字节长为为止.错误返回NULLint getdisk() 取当前正在使用的驱动器,返回一个整数(0=A,1=B,2=C等)int setdisk(int drive) 设置要使用的驱动器drive(0=A,1=B,2=C等),返回可使用驱动器总数int mkdir(char *pathname) 建立一个新的目录pathname,成功返回0int rmdir(char *pathname) 删除一个目录pathname,成功返回0char *mktemp(char *template) 构造一个当前目录上没有的文件名并存于template中char *searchpath(char *pathname) 利用MSDOS找出文件filename所在路径,,此函数使用DOS的PATH变量,未找到文件返回NULL进程函数,所在函数库为stdlib.h、process.hvoid abort() 此函数通过调用具有出口代码3的_exit写一个终止信息于stderr,并异常终止程序。
c语言标识符开头C语言标识符是用于表示变量、函数、常量、类型等程序元素的名称。
在C语言中,标识符由字母、数字和下划线组成,且必须以字母或下划线开头。
本文将介绍C语言标识符的命名规则和注意事项,并探讨如何正确使用标识符来提高代码的可读性和可维护性。
C语言标识符的命名规则如下:1. 标识符由字母、数字和下划线组成,区分大小写。
2. 标识符不能以数字开头。
3. 标识符不能是C语言的关键字,如if、for、while等。
4. 标识符的长度没有限制,但建议不要超过32个字符。
为了提高代码的可读性和可维护性,我们应该遵守一些命名规范和约定。
下面是一些常用的命名规范:1. 使用有意义的标识符名称,能够清楚地表达变量或函数的用途。
避免使用过于简单或过于复杂的名称。
2. 使用驼峰命名法或下划线命名法来命名标识符。
驼峰命名法将每个单词的首字母大写,除了第一个单词外,例如:myVariable、calculateSum。
下划线命名法使用小写字母和下划线连接每个单词,例如:my_variable、calculate_sum。
3. 对于常量,可以使用全大写字母和下划线来命名,例如:MAX_VALUE、PI。
4. 避免使用单个字母作为标识符,除非在循环变量或临时变量中使用。
5. 变量的命名应该具有描述性,能够清楚地表达变量的用途和含义。
除了命名规范外,我们还应该注意一些使用标识符的注意事项:1. 避免使用与C语言库函数相同的标识符名称,以免产生冲突。
2. 不要在同一个作用域内使用相同名称的标识符,这会导致编译错误。
3. 避免使用过长或过于复杂的标识符,这会增加代码的阅读难度。
4. 在不同的作用域中,可以使用相同名称的标识符,但最好避免这样做,以免造成混淆。
在编写代码时,正确使用标识符可以使代码更加清晰易读。
下面是一些使用标识符的示例:1. 声明一个整型变量来表示学生的年龄:int studentAge;2. 声明一个函数来计算两个数的和:int calculateSum(int num1, int num2);3. 声明一个常量来表示圆周率的值:const double PI = 3.14159;4. 声明一个结构体类型来表示学生的信息:struct StudentInfo { ... };总的来说,C语言标识符是程序中非常重要的一部分,正确使用标识符可以提高代码的可读性和可维护性。
1、每个工程初始的四个基本类-----每个类对应一个同名的.cpp和.h文件
CprojectnameApp----应用程序类,是CWinApp的派生类
CMainFrame----拥有应用程序主窗口的类
CprojectnameDoc---应用程序的文档类
CprojectnameView---应用程序的视图类
应用程序类—主窗口类
应用程序对象---应用程序类初始化函数----主窗口对象
视图总是与特定的文档对象相关
2、工作区ClassView—显示工程用到的类
ResourceView----显示工程用到的各种资源
FileView----显示工程涉及到的文件
3、添加类的消息映射函数
⑴、View---Class Wizard打开如下图所示对话框
⑵、分别选择Class name中选择类---- Object IDs中选择对象----Messages中,双击对应消息----弹出添加成员函数的对话框
⑶、在Member functions 中双击新添加的消息映射函数------跳转到映射函数定义的地方----保存文件
4、添加类的成员变量和成员函数
5、菜单ResourceView----Menu
⑴、添加菜单项(对象):拖动虚线框,并双击打开Menu Item Properties对话框
6、往工程中添加组建
菜单工程---添加到工程----commponents and Components。
VC++6.0中常用资源标志符前缀
(1).菜单编辑器
新建菜单项时,在菜单栏上的空白区域双击左键,会弹出“菜单项目属性”对话框。
对话框中的“ID”组合框中是菜单的项的ID标志符,右边是菜单的标题。
菜单的标题后可以定义记忆键,记忆键是的用户可以通过同时按下“Alt”键与该键来选择该菜单,记忆键的定义方式在将“&”号放在记忆键的字符前。
但需要注意的是,在每一级菜单下所有子菜单的记忆键必须是唯一的,可以在菜单项上右击,在弹出的菜单中单击“检查记忆”菜单项来检查记忆键是否有冲突。
通常情况下,如果新建的菜单项对应了相应的快捷键,则应在标题后直接说明相关的快捷键,快捷键与标题之间一般用一个制表符“\t”分隔开来。
在“菜单项目属性”对话框中,“分隔符”复选框用来指明该菜单项是否是一个分隔线,分隔线仅用来将各菜单项分隔开来,不具有任何其他作用。
“弹出”复选框用来指明该菜单项是否作为多级菜单的顶级菜单,顶级菜单不具有ID标志符合命令选项。
“已复选”和“已变灰”复选框是说明新建的菜单项初始状态是否为已经被选中或者被禁用,而最下面的“提示”文本框中指定了菜单的提示信息,当鼠标停留在该菜单上时会显示这些提示内容。
(2).图形编辑器
图形编辑器用来编辑含有图形的资源,如位图、图标、光标和工具栏等。
在图形编辑器窗口中提供了常用的图形绘制工具及调色板,图形工具条上包含了多种绘制工具。
在工具条中某些工具还带有一些选择子(selector),以便于用户绘制不同宽度、大小和形状的图形;颜色调色板中能够显示当前选择的颜色和背景色,调色板初始化时包含16种标准色和8种混合色。
除此之外,用户可以选择“图像”->“调整颜色”菜单命令,在弹出的“自定义颜色选取器”对话框中定制其他的颜色。
在图形编辑器中也能够编辑工具栏。
工具栏上的图形实际是一组大小相同的位图,应用程序能够自动的将位图关联到工具栏中具体的按钮上。
在工具目录下的“Res”目录下保存了工具栏的位图,默认文件是“toolbar.bmp”。
在“工具栏按钮属性”对话框中,ID组合框内表示该工具按钮的ID标志符,而宽度和高度文本框表示工具按钮上以像素为单位的图像的大小。
工具栏上所有工具按钮的图像都以最大的位图显示。
工具栏上的按钮通常相邻排列,可以拖动按钮来调整其位置。
如果按钮间有间隔,那么在显示工具栏时,间隔处将会自动出现一个分隔符。
如果需要删除一个按钮,选择该按钮,然后将其拖离工具栏,此时按钮及其对应的位图都会自动删除。
(3)字符串表编辑器
字符串表编辑器是用来编辑应用程序中全局的字符串常量。
应用程序最多包含一个字符串表,表中的字符串被划分为多个段。
每个字符串都有一个标识符,字符串中的标题项记录了每个字符串的内容,字符串内容可以包含常用的格式化字符,如:”\n”,”\t”,”\r”等。
需要注意的是,windows系统不允许字符串表中的内容为空。
如果新建一个空字符串表,在保存整个工程时,字符串将会自动被删除。
(4)版本编辑器
版本信息包括了应用程序标识信息、版本号、版权和商标信息。
在windows应用程序中,只包括唯一的版本信息资源“VS_VERSION_INFO”,其中包含了版本的多个字段项。
通过版本编辑器,用户可以增加、修改和删除版本的相关信息。
注意:版本信息中的“FILEFLAGS“字段项,在修改时其值不能够设置为”DEBUG“。
因为在资源脚本文件中,预编译指令”#ifdef“语句已经根据预定义的”_DEBUG“宏指定了”FILEFLAGS“的具体值。
(5)其他资源编辑器
除了以上说的,VC6.0还提供:二进制编辑器和HTML编辑器。
二进制编辑器以十六进制和ASCII格式来编辑二进制数据格式的资源。
在二进制编辑器窗口中,左边部分是数据内容的偏移量,中间的内容是以十六进制显示的数据内容,右边是以ASCII显示的字符。
HTML页面资源是一个HTML文件,是VC6.0新增的资源类型。
HTML编辑器作为简单的文本编辑器,能够根据HTML语法对HTML内容进行语法着色,能够识别VBS,ODL/IDL语言格式的HTML。
(6)引入外部资源
在VC6.0资源编辑器中,除了能够新建资源外,还可以从外部引入资源文件。
一种方式是直接引入文件并添加到工程中,如:图标文件(*.ico),位图文件(*.bmp)等;另一种方式是从包含资源的二进制文件中导入资源,这些文件包含可执行文件(.exe)、动态链接库(*.dll)等。
直接引入资源的方法是:在资源视图(resource view)中,选中资源目录项并右击,在弹出的菜单中选择“引入“菜单命令,然后在弹出的”引入资源“对话框中选择需要引入的各种资源文件,并单击”引入“按钮以添加到工程中。
从二进制文件中导入资源的方式是:选择“文件“->”打开“菜单命令,或者单击工具栏上的按钮,在弹出的”打开“对话框中,选择打开的文件类型为”所有文件类型“,并在”打开为“组合框中选择”资源“项,然后选择需要打开的可执行文件或其他二进制文件,并单击”打开“按钮打开该二进制文件包含的所有资源。