vc入门宝典八(基本操作)

类别:VC语言 点击:0 评论:0 推荐:

    基本操作

                                          

何志丹

 

主要内容:

Workspace(ClassView,ResoreceView,FileView)

菜单

App Wizard(应用程序向导)

Class Wizard(类向导)

标准控件

常用调试方法

 

VC的窗口分为三部分,正文窗口(右上角),工作窗口(左侧),输出窗口(下侧)。

工作窗口有三个标签,ClassView,ResoreceView,FileView;单击“+”,“—”打开文件夹;对没有打开的文件夹或文件,双击打开;对于打开的文件夹双击关闭。在ClassView中双击类名,

正文窗口显示类定义,双击类的成员变量查看定义,双击函数进入函数实现。对函数名右键,

有两个功能比较有实用价值:calls,called by.对类名进行右键,有两个功能十分有价值:

增加成员变量,增加成员函数。

 

常见菜单:

Edit->Advanced\Format Selection  Alt+F8           对选中对象进行缩排

Edit->Advanced\Make Selection Uppercase Ctrl+Shift+U  把选中部分改成大写

Edit->Advanced\Make Selection Lowercase Ctrl+U            把选中部分改成小写

Edit最后的三个菜单没有多大实用价值,因为如果要查看一个类的成员,可以用ClassName::的形式看,自动会列出成员,你只需打个开头再空格(或其它非标识符字符)就可以了,自动会匹配第一个符合条件的成员。当你打完函数名,再打正括号时,就会显示有关信息,包括在函数定义同一行的注释。

View->ClassWizard   Ctrl+w               编辑应用程序中的类

View->DebugWindow  Ctrl+F10,运行到光标处,它的子项就可以使用了。

Debug菜单基本上都会使用,Set Active Configuration,设置Debug方式或Release方式。

#ifdef _DEBUG

#endif

这个宏定义之间的语句,在Release方式下不会被执行。

Tool->Customize->Toolbars定义工具条

 

AppWizard有几步,只有第一,第二,最后一步比较重要。

第一步选择:MFC A ppWizard(exe);

第二步:Single document单文档

        Multiple document多文档

        Dialog basede  基于对话框

最后一步(基于对话框没有):

      Base Class:

选择视图类的基类,各基类差别比较明显,大家试一下就行了。应用程序向导会自动生成应用程序类,文档模块类,框架类,文档类,视图类。简单程序绝大部分处理都在视图类。当数据较复杂时,会用到文档类。

 

Ctrl+W打开ClassWizard

该对话框包含以下选项卡。

1,  Message Maps选项卡:管理消息和成员函数之间的连接。

2,  Member Variables选项卡:使用户加入或删除成员变量(与控件关联的)。

3,  Automation选项卡:提供各种特性来支持Automation,使用户方便地增删Automation的属性和方法。

4,  Active Events选项卡:提供各种特性来支持ActiveX,使用户方便地增删属性和响应函数。

5,  Class Info选项卡:显示类的信息,允许用户创建新类,以便支持对话框和有格式的视图。

 

Message Maps

1 Projcect 工程,一般不必修改,因为一般只有一个。

2,Class name  类名

3,Object IDs列出了当前所选中对象的ID号,包括能产生消息的菜单项,对话框控件等。

4,message列出了Object IDs框中所选中的当前项可处理的消息及可以被重写的MFC函数。双击消息相当于AddFunction.

5,Member functions列表框列出了Class name框当前类包含的所有成员函数。标注V的是虚函数,标注W的是Windows消息。

 

Member Variables选项卡:

双击ID,弹出增加成员变量对话框:

Category有两种选择,值,控制,每个控件可以和一个值类型数据相关联,同时还可以和一个控制类型数据相关联。

 

当你编辑一个对话框时,会多一个工具条,上面有许多标准控件。如果你不小心把它关掉了,在标准工具条附近的空白处右键,如菜单右边,将Controls勾上。将一个控件加到对话框有两种方法:

1,  直接拖到对话框上。

2,  单击一个控件,然后在对话框上画。

 

 

调试的最常用的三种方法,假如我们怀疑一个整形变量x有问题的话,可以:

1,  CString str;

str.Format(“%d”,x);//和printf非常相似

MessageBox(str);

优点:点确定后程序才会继续运行。

缺点:如果次数太多,过于浪费时间和键盘。

2,Ctrl+F10运行到光标处,在Watch窗口中name项输入x,,后面会显示值。

   优点:简单,可以查看所有的值。

   缺点:无法看到第二次运行到此处的情况。

3,  #ifdef _DEBUG

       afxDump<<x;

#endif

将结果显示在OutPut,不能在Release状态下。Ctrl+F5似乎无效,F5可以。

afxDump.SetDepth(1);
设置深度,如maps,arrays,它只打出有几个可元素,我们用上面的这个函数,它会将所有的内容打出来.
#ifdef _DEBUG
 char test[] = "0123456789\n";
 afxDump.HexDump( "--", (BYTE*) test, 11, 6 );
#endif
结果为:
-- 30 31 32 33 34 35
-- 36 37 38 39 0A
第一个参数,行首的打头字符.
第二个参数,要打的内容.
第三个参数,要打的元素个数.
第四个参数,每行的个数. 

4,TRACE(...), TRACE0, TRACE1, TRACE2, TRACE3 也只能在调试时用注意打字符串时有长度限制,包括结束符在内,不超过512个字符.

5.在Debug状态下
F9设置断点后,F5到下一个断点,F10下一行,F11进入函数(包括系统函数)内部,Shift + F11出来.
F5后,Debug菜单有相应的菜单项.
F5后,View->Debug Window的子菜单项比较有用.
Watch    查看你指定的变量
variables 显示auot变量,local变量,this的值
memory   显示指定内存地址存储的值
call stack 显示函数调用关系
registers 寄存器的值
Disabblemble    汇编代码

其实Release下也可调试F5
Alt + f7 工程设置
c\c++  Generate Browse info 选上.
       Debug info 选 Progame database for edit and continue
Link   Generate debug info 选上
       Link incrementally 选上

本文地址:http://com.8s8s.com/it/it1814.htm