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

原创 2004年02月24日 10:21:00

    基本操作<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

                                          

何志丹

 

主要内容:

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  类名

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

4message列出了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 选上

数据结构实验之栈与队列八:栈的基本操作

Problem Description 堆栈是一种基本的数据结构。堆栈具有两种基本操作方式,push 和 pop。push一个值会将其压入栈顶,而 pop 则会将栈顶的值弹出。现在我们就来验证一...
  • shadowam
  • shadowam
  • 2017年09月27日 14:56
  • 437

3335 数据结构实验之栈八:栈的基本操作

数据结构实验之栈八:栈的基本操作#include #include #include #include using namespace std; typedef int ET; typedef str...
  • yue_luo_
  • yue_luo_
  • 2016年10月27日 16:35
  • 99

3335-数据结构实验之栈与队列八:栈的基本操作

#include using namespace std; typedef int ElemType;int m;class Stack{ private: ElemType *up; ...
  • ywj_justdoit
  • ywj_justdoit
  • 2017年10月19日 19:49
  • 66

sdut 3335 数据结构实验之栈与队列八:栈的基本操作

数据结构实验之栈与队列八:栈的基本操作 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Des...
  • sxy201658506207
  • sxy201658506207
  • 2017年10月12日 13:36
  • 111

SDUT 3335 数据结构实验之栈八:栈的基本操作

点击打开链接 #include using namespace std; int _stack[1010]; int main() { int n, m, k, top; char...
  • zhidetian
  • zhidetian
  • 2016年06月19日 14:34
  • 182

vc入门宝典(十)

消息何志丹PreTranslateMessage函数顾名思义,就是在消息被翻译之前,做的一些事.我们可以屏蔽一个键或一个命令.下面是一些常用消息的相关信息.这些信息放pMsg中.WM_KEYDOWN ...
  • he_zhidan
  • he_zhidan
  • 2003年07月08日 12:55
  • 1721

vc入门宝典(九)

集合类使用心得何志丹MFC提供集合类(Collect)专门负责数据对象的存储和管理,MFC的集合类分为三类,分别用于处理三类不同性质的数据结构:表(List,类似于数据结构的双链表),数组(Array...
  • he_zhidan
  • he_zhidan
  • 2003年07月07日 17:12
  • 2339

VC入门宝典

VC入门宝典 何志丹 『针对对象』想学VC,而不会VC的朋友.如果你刚学VC,可以看一下本系列的其他文章. 『摘要』1,建立最简单的VC程序2,Debug和release的区别及切换方式3,如何备份V...
  • he_zhidan
  • he_zhidan
  • 2003年07月07日 13:38
  • 12906

cas 入门之八:cas 认证处理器-GENERIC

GENERIC(普通认证) 需要增加cas-server-support-generic-3.5.2.jar 普通认证很简单,就是将你需要认证的用户名、密码对存放在cas 服务端,一种式是直接配置...
  • zhurhyme
  • zhurhyme
  • 2014年06月26日 20:31
  • 3302

数据结构实验之栈八:栈的基本操作 SDUT

题目描述 堆栈是一种基本的数据结构。堆栈具有两种基本操作方式,push 和 pop。Push一个值会将其压入栈顶,而 pop 则会将栈顶的值弹出。现在我们就来验证一下堆栈的使用。 输入 ...
  • Sunmh_AC
  • Sunmh_AC
  • 2015年10月11日 16:40
  • 975
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:vc入门宝典八(基本操作)
举报原因:
原因补充:

(最多只允许输入30个字)