1.4.2 常见问题及解决方法
问题一:如何在项目中加入自己定义的类
在进行项目开发时,经常要为项目添加自定义类,如何为项目添加自定义类便成了初学者的一个大问题。
【解决方法】
向项目中添加自定义类的方法很多,在这里介绍一个较简便的方法:选择Insert|New Class命令。弹出对话框后,选择Class Type为generic,并输入类名。
问题二:时间错误文件
只改动了一个文件,却要把整个项目全部重新编译链接一次。在链接完成后,开始运行时却又提示重新编译链接一次。这主要是因为出现了时间错误文件的缘故。
【解决方法】
找出工程文件夹下的debug目录,将时间错误文件全部删除,再重新编译一次(时间错误是指文件的创建和修改时间都比系统时间靠后)。
问题三:Work Space中的Class View显示混乱
有时添加的成员变量或函数不能显示,有时即使显示出来了变量或函数,但双击后不能跳至正确的位置。
【解决方法】
删除ncb文件,再重新编译全部文件(ReBuild All)。
问题四:Class View中消失的类
有时一些类会突然从工作区的类视图(Class View)中消失,此时为这个类添加变量、函数,或者查找该类的特定变量、函数定义与实现都极为不便。
【解决方法】
此时的类只是隐藏了,打开文件视图(File View),找到类视图(Class View)中隐藏类的头文件,按下键盘的空格键,类就会重现在类视图中;也可以关闭工程,删除clw工程文件后,重新打开工程,重新编译全部后再次生成clw。
问题五:对话框上按下Enter键后自动关闭
当对话框获取焦点时,按下Enter键,对话框会自动关闭。这是很多程序员不想做的事情,但是VC工程却提供了默认的这种操作。
【解决方法】
有两种办法可以解决这个问题,读者可以根据实际需求进行选择。
(1)去掉对话框上的"确定"按钮的"缺省"属性前面的对勾,重载OnOk()函数,在OnOk()函数里注释掉调用基类中OnOk()函数的那行代码。
(2)重写对话框的PreTranslateMessage()函数,屏蔽Enter键,实现如下:
- 01 BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg)
- 02 {
- 03 if(pMsg-> message == WM_KEYDOWN) //键盘按键事件
- 04 {
- 05 if(pMsg-> wParam == VK_RETURN) //Enter键
- 06 {
- 07 return TRUE;
- 08 }
- 09 }
- 10 return CDialog::PreTranslateMessage(pMsg);
- 11 }