VC++中一些常见问题的解决方法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VC++中一些常见问题的解决方法

(1)为什么某个类突然在工作区间里面突然看不见了?

只是类隐藏了,打开FILEVIEW,找到隐藏类的头文件,随便敲一下键盘的空格键,类就会在CLASSVIEW中显示了

(2)在基于对话框的程序中,一按回车键,对话框就没了。

把确定按纽的缺省属性前面的对勾去掉,重载OnOk()函数,在OnOk()函数里注释掉调用基类的OnOk()函数那行代码

(3)为什么我的VC6.0自动显示成员列表功能时有时无?

删除该项目扩展名为.ncb文件,重新打开该项目。

(4)孙老师的视频教程第一课的程序,为什么在我机子上不行?

选菜单project->settings...在弹出的对话框中选Link,在最下边有Project Options,把里边的/subsystem:console删除就可以了

(5)如何干净的删除一个类?

先从workspace中的fileview中删除对应的.h和.cpp文件;再关闭项目,从实际的文件夹中删除对应的.h和.cpp文件;再删除.clw文件。最后打开项目,rebuild all。

(6)网络编程一课中的聊天室程序在为什么老是绑定失败?

一般这种问题是端口设置在6000监听,正好和QQ的端口冲突,多换几个端口试试就可以了

(7)网络程序只能在debug运行,release不行,提示错误error LNK2001: unresolved external symbol __imp__WSAStartup@8

在Release下仍然需要添加Ws2_32.lib。

(8)我画了一条直线但是当窗口最大化时或者被其他窗口覆盖时,直线不见了,只剩下直线原先存在的窗口

这是因为窗口重绘,你可以在响应WM_PAINT的OnDraw()函数中添加画线的代码

(9)在安装VC时未安装MSDN, 自己再用MSDN安装盘安装后在VC中按F1无法调用?修改注册表是最直接的方法,具体过程如下: 在

HKEY_CURRENT_USER/Software/Microsoft/DevStudio/6.0/Help下增加

Enable,Filename,State三个主键,注意其类型,含义如下: Enable 类型:DWORD,默认值是1,改变为0x00000001 Filename 类型:字符串改为c:\program

files\....\MSDev98\help\Msdev.hlp State 类型:DWORD 默认值为0,改变为0x00000001

(10)如何在应用程序中打开一个超级链接?

这个问题实际上很简单,只要使用ShellExecute API函数就行了

(11)如何在没安装VC的环境下的机器也能打开运行用MFC编写的程序?

把编译模式改为RELEASE,然后点工程-》设置-》常规,选择使用MFC作为静态连接库(12)如何自定义一个消息?

1.#define WM_MY_MESSAGE WM_USER+1;

2.头文件DECLARE_MESSAGE_MAP()前写消息响应函数原形;

3.在BEGIN_MESSAGE_MAP添加消息到函数的映射.

4.写函数的实现部分

(13)怎样改变VC++编辑器默认的颜色?

工具—》选择—》格式,选中注释的颜色即可改变。

(14)复制了一段代码到当前工作空间里,可是代码排列很乱,如何调整?

简单,按下鼠标左键拖动鼠标将代码选择上,同时按下键盘的ALT+F8键

(15)_T("Option 1"),_T()是什么意思?为什么要转换,直接用不可以?

_T()自动将()内字符串转成unicode or Multibyte-character or SBCS (ASCII) 根据系统宏定义,为了将程序与vb等unicode 编码的程序交互,为了程序的国际化,为了..

(16)如何改变视图的背景色?

你可以通过处理WM_ERASEBKGND消息来改变CView、CWnd或CWnd对象的背景色(17)如何建立多文档?

为了加入对附加文档类型的支持,你可以在CWinApp派生类中创建和注册附加CmultiDocTemplate对象。。将一个附加文档类型加入到MFC程序的一般步骤如下:

用AppWizard来创建一个新的文档类和视图类。

用资源编辑器增加新的资源字串来支持新的文档类。要想知道关于文档样板字符串格式的更多内容,请参阅"如何理解文档样板字符串"。

用资源编辑器增加附加的应用程序图标和菜单资源。注意,这些资源中每一个的ID都必须与在步骤2中创建的文档模板字符串的ID是相同的。这个ID被CmultiDocTemplate类用来识别与附加文档类型相关的资源。

在应用程序的InitInstance()函数中,创建了另一个CMultiDocTemplate对象并且用CWinApp::AddDocTemplate()函数来注册。例如:

CMultiDocTemplate* pDocTemplate2 = new CMultiDocTemplate(

IDR_DOC2TYPE, RUNTIME_CLASS(CDoc2),

RUNTIME_CLASS(CMDIChildWnd),RUNTIME_CLASS(CView2));

AddDocTemplate(pDocTemplate2);

最后,将定制的序列化和绘图代码加入到你的新文档和视图类中。

(18)如何使我的程序在启动时不创建一个新文档?

在程序的InitInstance中的ProcessShellCommand函数之前加入:

cmdInfo.m_nShellCommand = CCommandLineInf:FileNothing

(19)如何获取应用程序的实例句柄?

应用程序的实例句柄保存在CWinApp m_hInstance 中,可以这么调用AfxGetInstanceHandle获得句柄.

(20)如何得到程序中其它类的指针(例如框架类,视类,文档类等等)?

MFC应用程序中指针的使用

(转)

(21)为什么创建类的时候我不能直接生成从CDialogBar派生的类?

ClassVizard的确没有提供这个功能,要从没有提供的类派生类的时候只能通过手动修改来完成

(22)我用classwizard 给静态文本框加变量时,为什么里面没有它的ID??

因为所有的静态文本控件的ID都被默认为了IDC_STATIC,你只需要修改这个ID号就可以了

(23)获得各种目录信息

Windows目录: Use "GetWindowsDirectory"

Windows下的system目录: Use "GetSystemDirectory"

相关文档
最新文档