|
主要内容: < LT电脑网络部落www.luotuo.net >
< LT电脑网络部落www.luotuo.net >
Workspace(ClassView,ResoreceView,FileView) < LT电脑网络部落www.luotuo.net >
菜单 < LT电脑网络部落www.luotuo.net >
< LT电脑网络部落www.luotuo.net >
App Wizard(应用程序向导) < LT电脑网络部落www.luotuo.net >
Class Wizard(类向导)
标准控件
< LT电脑网络部落www.luotuo.net >
常用调试方法
< LT电脑网络部落www.luotuo.net >
VC的窗口分为三部分,正文窗口(右上角),工作窗口(左侧),输出窗口(下侧)。
< LT电脑网络部落www.luotuo.net >
工作窗口有三个标签,ClassView,ResoreceView,FileView;单击“+”,“―”打开文件夹;对没有打开的文件夹或文件,双击打开;对于打开的文件夹双击关闭。在ClassView中双击类名,
< LT电脑网络部落www.luotuo.net >
正文窗口显示类定义,双击类的成员变量查看定义,双击函数进入函数实现。对函数名右键,
< LT电脑网络部落www.luotuo.net >
有两个功能比较有实用价值:calls,called by.对类名进行右键,有两个功能十分有价值: < LT电脑网络部落www.luotuo.net >
< LT电脑网络部落www.luotuo.net >
增加成员变量,增加成员函数。
< LT电脑网络部落www.luotuo.net >
< LT电脑网络部落www.luotuo.net >
常见菜单: < LT电脑网络部落www.luotuo.net >
< LT电脑网络部落www.luotuo.net >
Edit->Advanced\\Format Selection Alt+F8 对选中对象进行缩排 < LT电脑网络部落www.luotuo.net >
< LT电脑网络部落www.luotuo.net >
Edit->Advanced\\Make Selection Uppercase Ctrl+Shift+U 把选中部分改成大写 < LT电脑网络部落www.luotuo.net >
Edit->Advanced\\Make Selection Lowercase Ctrl+U 把选中部分改成小写
Edit最后的三个菜单没有多大实用价值,因为如果要查看一个类的成员,可以用ClassName::的形式看,自动会列出成员,你只需打个开头再空格(或其它非标识符字符)就可以了,自动会匹配第一个符合条件的成员。当你打完函数名,再打正括号时,就会显示有关信息,包括在函数定义同一行的注释。
< LT电脑网络部落www.luotuo.net >
View->ClassWizard Ctrl+w 编辑应用程序中的类 < LT电脑网络部落www.luotuo.net >
View->DebugWindow Ctrl+F10,运行到光标处,它的子项就可以使用了。
< LT电脑网络部落www.luotuo.net >
Debug菜单基本上都会使用,Set Active Configuration,设置Debug方式或Release方式。
< LT电脑网络部落www.luotuo.net >
#ifdef _DEBUG < LT电脑网络部落www.luotuo.net >
#endif < LT电脑网络部落www.luotuo.net >
< LT电脑网络部落www.luotuo.net >
这个宏定义之间的语句,在Release方式下不会被执行。
< LT电脑网络部落www.luotuo.net >
Tool->Customize->Toolbars定义工具条
< LT电脑网络部落www.luotuo.net >
< LT电脑网络部落www.luotuo.net >
AppWizard有几步,只有第一,第二,最后一步比较重要。 < LT电脑网络部落www.luotuo.net >
第一步选择:MFC A ppWizard(exe);
第二步:Single document单文档 < LT电脑网络部落www.luotuo.net >
Multiple document多文档 < LT电脑网络部落www.luotuo.net >
< LT电脑网络部落www.luotuo.net >
Dialog basede 基于对话框 < LT电脑网络部落www.luotuo.net >
< LT电脑网络部落www.luotuo.net >
最后一步(基于对话框没有):
Base Class: < LT电脑网络部落www.luotuo.net >
选择视图类的基类,各基类差别比较明显,大家试一下就行了。应用程序向导会自动生成应用程序类,文档模块类,框架类,文档类,视图类。简单程序绝大部分处理都在视图类。当数据较复杂时,会用到文档类。
< LT电脑网络部落www.luotuo.net >
< LT电脑网络部落www.luotuo.net >
Ctrl+W打开ClassWizard < LT电脑网络部落www.luotuo.net >
< LT电脑网络部落www.luotuo.net >
该对话框包含以下选项卡。 < LT电脑网络部落www.luotuo.net >
1, Message Maps选项卡:管理消息和成员函数之间的连接。
2, Member Variables选项卡:使用户加入或删除成员变量(与控件关联的)。
< LT电脑网络部落www.luotuo.net >
3, Automation选项卡:提供各种特性来支持Automation,使用户方便地增删Automation的属性和方法。
4, Active Events选项卡:提供各种特性来支持ActiveX,使用户方便地增删属性和响应函数。 < LT电脑网络部落www.luotuo.net >
< LT电脑网络部落www.luotuo.net >
5, Class Info选项卡:显示类的信息,允许用户创建新类,以便支持对话框和有格式的视图。
< LT电脑网络部落www.luotuo.net >
Message Maps
1 Projcect 工程,一般不必修改,因为一般只有一个。
2,Class name 类名
3,Object IDs列出了当前所选中对象的ID号,包括能产生消息的菜单项,对话框控件等。 < LT电脑网络部落www.luotuo.net >
4,message列出了Object IDs框中所选中的当前项可处理的消息及可以被重写的MFC函数。双击消息相当于AddFunction. < LT电脑网络部落www.luotuo.net >
< LT电脑网络部落www.luotuo.net >
5,Member functi列表框列出了Class name框当前类包含的所有成员函数。标注V的是虚函数,标注W的是Windows消息。
< LT电脑网络部落www.luotuo.net >
Member Variables选项卡:
双击ID,弹出增加成员变量对话框:
Category有两种选择,值,控制,每个控件可以和一个值类型数据相关联,同时还可以和一个控制类型数据相关联。
< LT电脑网络部落www.luotuo.net >
当你编辑一个对话框时,会多一个工具条,上面有许多标准控件。如果你不小心把它关掉了,在标准工具条附近的空白处右键,如菜单右边,将Controls勾上。将一个控件加到对话框有两种方法: < LT电脑网络部落www.luotuo.net >
1, 直接拖到对话框上。 < LT电脑网络部落www.luotuo.net >
< LT电脑网络部落www.luotuo.net >
2, 单击一个控件,然后在对话框上画。
< LT电脑网络部落www.luotuo.net >
调试的最常用的三种方法,假如我们怀疑一个整形变量x有问题的话,可以: < LT电脑网络部落www.luotuo.net >
1, CString str; < LT电脑网络部落www.luotuo.net >
str.Format(“%d”,x);//和printf非常相似
< LT电脑网络部落www.luotuo.net >
MessageBox(str);
< LT电脑网络部落www.luotuo.net >
优点:点确定后程序才会继续运行。 < LT电脑网络部落www.luotuo.net >
< LT电脑网络部落www.luotuo.net >
缺点:如果次数太多,过于浪费时间和键盘。 < LT电脑网络部落www.luotuo.net >
< LT电脑网络部落www.luotuo.net >
2,Ctrl+F10运行到光标处,在Watch窗口中name项输入x,,后面会显示值。
优点:简单,可以查看所有的值。
缺点:无法看到第二次运行到此处的情况。
3, #ifdef _DEBUG
< LT电脑网络部落www.luotuo.net >
afxDump< < LT电脑网络部落www.luotuo.net >
#endif
将结果显示在OutPut,不能在Release状态下。Ctrl+F5似乎无效,F5可以。 < LT电脑网络部落www.luotuo.net >
< LT电脑网络部落www.luotuo.net >
afxDump.SetDepth(1); < LT电脑网络部落www.luotuo.net >
设置深度,如maps,arrays,它只打出有几个可元素,我们用上面的这个函数,它会将所有的内容打出来. < LT电脑网络部落www.luotuo.net >
#ifdef _DEBUG
char test[] = \"0123456789\\n\";
afxDump.HexDump( \"--\", (BYTE*) test, 11, 6 );
#endif
结果为:
-- 30 31 32 33 34 35
-- 36 37 38 39 0A < LT电脑网络部落www.luotuo.net >
第一个参数,行首的打头字符.
第二个参数,要打的内容. < LT电脑网络部落www.luotuo.net >
第三个参数,要打的元素个数. < LT电脑网络部落www.luotuo.net >
第四个参数,每行的个数. < LT电脑网络部落www.luotuo.net >
4,TRACE(...), TRACE0, TRACE1, TRACE2, TRACE3 也只能在调试时用注意打字符串时有长度限制,包括结束符在内,不超过512个字符.
< LT电脑网络部落www.luotuo.net >
5.在Debug状态下 < LT电脑网络部落www.luotuo.net >
F9设置断点后,F5到下一个断点,F10下一行,F11进入函数(包括系统函数)内部,Shift + F11出来. < LT电脑网络部落www.luotuo.net >
F5后,Debug菜单有相应的菜单项. < LT电脑网络部落www.luotuo.net >
F5后,View->Debug Window的子菜单项比较有用. < LT电脑网络部落www.luotuo.net >
Watch 查看你指定的变量
variables 显示auot变量,local变量,this的值 < LT电脑网络部落www.luotuo.net >
memory 显示指定内存地址存储的值
call stack 显示函数调用关系
registers 寄存器的值 < LT电脑网络部落www.luotuo.net >
Disabblemble 汇编代码 < LT电脑网络部落www.luotuo.net >
其实Release下也可调试F5 < LT电脑网络部落www.luotuo.net >
Alt + f7 工程设置
c\\c++ Generate Browse info 选上.
Debug info 选 Progame database for edit and continue
Link Generate debug info 选上
Link incrementally 选上
< LT电脑网络部落www.luotuo.net >
VC入门宝典(CString VC字符串)
更多信息请参考VC论坛
VC入门宝典(CString VC字符串) http://bbs.palmjob.net/technology/1001/0807142231243-1.htm < LT电脑网络部落www.luotuo.net >
VC论坛 http://bbs.palmjob.net/ |
|