1.检测程序中的括号是否匹配
把光标移动到需要检测的括号(如大括号{}、方括号[]、圆括号()和尖括号)前面,键入快捷键“ctrl+]”。如果括号匹配正确,光标就跳到匹配的括号处,否则光标不移动,并且机箱喇叭还会发出一声警告声。
2.查看一个宏(或变量、函数)的宏定义
把光标移动到你想知道的一个宏上,就比如说最常见的declare_map_message上按一下f12(或右键菜单中的go to defition of …),如果没有建立browse files,会出现提示对话框,确定,然后就会跳到定义那些东西的地方。
3.格式化一段乱七八糟的源代码
选中那段源代码,按atl+f8。
4.在编辑状态下发现成员变量或函数不能显示
删除该项目扩展名为.ncb文件,重新打开该项目。
5.如何整理classview视图中大量的类
可以在classview 视图中右键新建文件夹(new folder),再把具有相近性质的类拖到对应的文件夹中,使整个视图看上去清晰明了.
6.定位预处理指定
在源文件中定位光标到对称的#if, #endif,使用ctrl+k.
7.如何添加系统中lib到当前项目
在project | settings | link | object/library modules:输入lib名称,不同的lib之间用空格格开.
8.如何添加系统中的头文件(.h)到当前项目.
#include ,告诉编译到vc系统目录去找;使用#include filename.h,告诉编译在当前目录找.
9.如何在studio使用汇编调试
在workbench的debugger状态下按ctrl+f7.
10.怎样处理classziard找不到的系统消息
如果要在classwizard中处理wm_nchittest等系统消息,请在classwizard中class info页中将message filter改为window就有了.
11.如何干净的删除一个类
先从workspace中的fileview中删除对应的.h和.cpp文件,再关闭项目,从实际的文件夹中删除对应的.h和.cpp文件与.clw文件。
12.如果让控制台应用程序支持mfc类库
可以在控制台应用程序中include 来引入mfc库,但是控制台应用程序缺省是单线程的,mfc是多线程的,为解决该矛盾,在project setting->c/c++ 选项,选择code generation,在use run-time library 下拉框中选择debug multithread。
13.如何汉化只有可执行代码的.exe 文件
在nt 下利用vc open file 以resources方式打开*.exe 文件,直接修改资源文件,然后保存即可。
附:vc项目文件说明
.opt 工程关于开发环境的参数文件。如工具条位置等信息;
.aps (appstudio file),资源辅助文件,二进制格式,一般不用去管他.
.clw classwizard信息文件,实际上是ini文件的格式,有兴趣可以研究一下.有时候classwizard出问题,手工修改clw文件可以解决.如果此文件不存在的话,每次用classwizard的时候绘提示你是否重建.
.dsp (developerstudio project):项目文件,文本格式,不过不熟悉的话不要手工修改.dsw(developerstudio workspace)是工作区文件,其他特点和dsp差不多.
.plg 是编译信息文件,编译时的error和warning信息文件(实际上是一个html文件),一般用处不大.在tools->options里面有个选项可以控制这个文件的生成.
.hpj (help project)是生成帮助文件的工程,用microsfot help compiler可以处理.
.mdp (microsoft devstudio project)是旧版本的项目文件,如果要打开此文件的话,会提示你是否转换成新的dsp格式.
.bsc 是用于浏览项目信息的,如果用source brower的话就必须有这个文件.如果不用这个功能的话,可以在project options里面去掉generate browse info file,可以加快编译速度.
.map 是执行文件的映像信息纪录文件,除非对系统底层非常熟悉,这个文件一般用不着.
.pch (pre-compiled file)是预编译文件,可以加快编译速度,但是文件非常大.
.pdb (program database)记录了程序有关的一些数据和调试信息,在调试的时候可能有用.
.exp 只有在编译dll的时候才会生成,记录了dll文件中的一些信息.一般也没什么用.
.ncb 无编译浏览文件(no compile browser)。当自动完成功能出问题时可以删除此文件。build后会自动生成。
// 选择字符
1. (cool)按下alt 键不放,点击鼠标左键拖动,可以选择文本块、可选择列。
2. 安着ctrl键不放,单击一个单词,可以选择一个单词,或双击。
3. 将光标移在开始位置,按住shift点击鼠标左键可选择一段(在ie浏览其中照样可
用,看不到光标而已,
4. 双击鼠标左键可选择一个单词。
5.按住shift+上下方向键 可选择行。
6.按住 ctrl+shift+左右方向键 可选择一个单词。
7. 按ctrl + c 可copy光标所在的这一行。
8. 按住shift+[end] 可选择本行。
//////////////////////////////////////
f1 显示帮助,如果光标停在代码的某个字符上,显示msdn中相应的帮助内容
f2 书签功能: ctrl+f2 --在某行设置一个书签(再按一次次是取消)
f2 --跳到下一个书签位置
shift+f2 --跳到上一个书签位置
ctrl+shift+f2 --删除所有书签
f3 查找: ctrl+f3 --在文件中查找,如果当前光标在一个字符串上,
那么自动查找此字符串.相似的有ctrl+f
f3 --查找文件中下一个串
shift+f3 --查找文件中上一个串
f4(不是流行花园那个) 如果是编译后或者find in files后,可以逐条定位.
ctrl+f4 --关闭文件
alt+f4 --关闭vc(跟windows定义的一样)
f5编译并执行 f5 --编译并通过vc执行
ctrl+f5 --不经过vc,直接执行编译后的exe
shift+f5 --f5运行后,直接从vc中停止程序(可以模拟当机情况)
ctrl+shift+f5 --重新开始运行
f6切换窗口 splitwindow后,可以转换光标所在的窗口
f7编译 f7 编译工程
ctrl+f7 编译当前文件
alt+f7 工程设置对话框
f8选择的粘滞键 其实更常用的是按住shift+方向键
alt+f8 选中的代码书写格式对齐
f9设置断点 ctrl+f9删除所有断点
alt+f9 显示编辑断点的对话框
ctrl+f9断点无效
f10单步执行(debug时)
ctrl+f10 执行到光标所在行
(试试看shift+f10什么效果)
f11跟踪时进入函数内部
shift+f11跳到上一层调用栈
f12跳到函数定义初(需要带browse info选项编译,建议不选,生成文件很大)
编辑常用
ctrl+w 显示classwizard,边界面程序用的比较多
ctrl+z/ctrl+y undo/redo
ctrl+u 字母转化为小写(有的vc没有设置)
ctrl+shift+u 字母转化为大写(有的vc没有设置)
ctrl+s 保存(强烈建议编码时经常按两下,省得掉电死机时后悔,呵呵,
该键在多数编辑软件都适用)
ctrl+d 查找(嗯,如果有softice,那么就是呼叫它了)
ctrl+f 正宗的查找快捷键
ctrl+g 跳到文件中第n行
ctrl+shift+g 光标在一个文件名上,直接跳到指定文件
ctrl+h 替换
ctrl+j,k #ifdef...#endif查找配对
ctrl+l 剪切一行
ctrl+} 匹配括号(),{}
调试常用
shift+f9 quickwatch,并显示关标所在处的变量
alt+3 watch 查看窗口
alt+4 variables 监视变量(常用)
alt+5 显示寄存器
alt+6 显示内存(常用)
alt+7 显示堆栈情况(当机了多看看)
alt+8 显示汇编码
还有一些常用的
ctrl+tab 切换打开的文件视图,(如果按住ctrl,顺序向后切换)
ctrl+shift+tab切换打开的文件视图,(如果按住ctrl,顺序向前切换)
tab 选中后,整体后移一个制表符,
shift+tab 选中后,整体前移一个制表符,
alt+0 将焦点移到工作区(esc回编辑区)
alt+2 将焦点移到输出区(esc回编辑区)
ctrl+pgup 逆序切换工作区视图
ctrl+pgdn 顺序切换工作区视图
另外,vc没有设置打开,关闭工作区,和打开关闭输出区的快捷键,如果觉得不方便,
可以自己注册(我设置的是 ctrl+,和ctrl+/).
注册在tools => customize => keyboard
http://www.cppblog.com/kenbardy/articles/4188.html