VC++学习之VC中常见问题

vc_redist、VC++ Build Tools、Visual Studio的认识‌ vc_redist、VC++ Build Tools、Visual Studio的认识‌ ‌vc_redist、VC++ Build Tools、Visual Studio的主要区别在于它们的用途和功能, 安装与否和安装版本可以通过以方式下查看。 ​ 阅读详情
VC++学习之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,改变为0x00000001Filename 类型:字符串改为c:program files....MSDev98helpMsdev.hlpState 类型:DWORD 默认值为0,改变为0x00000001 
(10)如何在应用程序中打开一个超级链接?

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

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

把编译模式改为RELEASE,然后点工程-》设置-》常规,选择使用MFC作为静态连接库

(12)如何自定义一个消息?

1.#define WM_MY_MESSAGEWM_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、CFrameWnd或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)如何得到程序中其它类的指针(例如框架类,视类,文档类等等)?

请看此贴:

screen.width-500)this.style.width=screen.width-500;">screen.width-500)this.style.width=screen.width-500;" border=0> screen.width-500)this.style.width=screen.width-500;"> [转帖]MFC应用程序中指针的使用

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

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

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

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

(23)获得各种目录信息
Windows目录: Use "GetWindowsDirectory"
Windows下的system目录: Use "GetSystemDirectory"
temp目录: Use "GetTemppath"
当前目录: Use "GetCurrentDirectory"

(24)如果让控制台应用程序支持MFC类库? 
可以在控制台应用程序中include 来引入mfc库,但是控制台应用程序缺省是单线程的,mfc是多线程的,为解决该矛盾,在project setting->c/c++ 选项,选择code generation,在use run-time library 下拉框中选择debug multithread。 

(25) 我怎样才能在我的应用程序中循环浏览已经打开的文档?

使用CDocTemplate中未公开的GetFirstDocposition()和GetNextDoc()函数。

(26)才能在我的应用程序中循环浏览已经打开的视?

使 用 CDocument 中 未 公 开 的 GetFirstViewposition() 和 GetNextView() 函 数。

(27)数preCreateWindow是干什么用的?

preCreateWindow 允 许 你 在 调 用 CreateWindow 之 前 来 改 变 窗 口 属 性。

(28)该怎样防止MFC在窗口标题栏上把文档名预置成应用程序名?

在 preCreateWindow 函 数 中 删 除 FWS_pREFIXTITLE 标 志 的 窗 口 样 式:
cs.style &= ~FWS_pREFIXTITLE;

(29) 我应该怎样防止MFC在窗口标题栏上添加文档名?

在 preCreateWindow 函 数 中 删 除 FWS_ADDTOTITLE 标 志 的 窗 口 样 式:
cs.style &= ~FWS_ADDTOTITLE ;

(30) 我应该如何改变视窗口的大小?

因 为 视 窗 口 实 际 上 是 框 架 窗 口 的 子 窗 口,所 以 你 必 须 改 变 框 架 窗 口 的 大 小,而 不 是 改 变 视 窗 口。使 用 CView 类 中 的 GetparentFrame() 函 数 获 得 指 向 框 架 窗 口 的 指 针,然 后 调 用 MoveWindow() 函 数 来 改 变 框 架 的 大 小。这 会 使 变 尺 寸 的 视 充 满 框 架 窗 口。

(31) 我有一无模式对话框。我怎样才能在窗口退出时删除CDialog对象?

把“ this”加 到 postNcDestroy 中。这 主 要 用 在 需 要 自 动 删 除 对 象 的 场 合。

(32) 为什么把“ this”放在postNcDestroy中而不是OnNcDestroy?

OnNcDestroy 只 被 已 建 立 的 窗 口 调 用。如 果 建 立 窗 口 失 败 ( 如 preCreateWindow ),则 没 有 窗 口 处 来 发 送 WM_NCDESTROY 消 息。postNcDestroy 是 在 对 象 窗 口 被 完 全 删 除,在 OnNcDestroy 后,甚 至 在 窗 口 建 立 失 败 之 后 调 用 的。

(33):如何为一个MFC应用程序添加ODBC功能? 
(1)在文件Stdafx.h文件末尾添加下面一行: 
#include // MFC ODBC database classes 
(2)在文本模式下编辑RC文件(利用File->Open As text 方式) 
在下面的程序行(共有两处) 
#include "l.chsafxprint.rc" // printing/print preview resources 
添加下一行: 
#include "l.chsafxdb.rc" // Database resources 
(34):数据库表修改后,如何快速更新一个绑定到表的CrecordSet记录集? 

利用ClassWizard 中 Member Variables标签下选中记录集类后,利用UpdateColoumns和Bind All。 

(35):怎么才能让窗口最大化显示啊? 我在框架的preCreateWindow中 cs.styles|=WS_MAXIMIZE 不行啊, OnCreate 中 SetWindowLong(m_hWnd,GWL_STYLE,WS_MAXIMIZE);也不行啊

上面两种方法都不行,要是窗口最大化显示,应改变ShowWindow()的参数,

在InitInstance()中将

m_pMainWnd->ShowWindow(...)改为

m_pMainWnd->ShowWindow(SW_SHOWMAXINIZE);就Ok

(36)怎么把别人程序中设计好的对话框放到自己的程序中??

用VC打开自己的程序,选择资源视图;然后点FILE->OpEN菜单项,打开设计好的对话框的资源文件(后缀名为。RC),这里注意一定只 打开后缀名为。RC的资源文件,然后在VC编辑器的文档区域就会有你刚打开的另一个程序的资源文件中资源的一个树型结构图,然后找到你要复制的对话框资源 ID,鼠标左键按住ID号,然后拖放到资源视图中,这个时候你再看看自己程序的资源视图,是不是已经复制过来了。罗嗦了这么多,其实问题的关键是在一个编 辑器中同时打开自己的项目和另一个项目的资源文件。

(37)[求助]急!!!关于installshield制作中的注册表问题

我用installshield 制作安装程序,怎样在注册表中写入用户单位的名称,请大家帮帮忙啊

在InstallShield选择Resources,在其中的Registry Entry部分输入要添加的注册项 。

(38) VC6下如何对程序进行调试
  
在 主菜单"Build"中,有一个Start Build的子菜单,它下面包含了Go菜单(快捷键为F5),选择后,程序将从当前语句进入调试运行,直到遇到断点或程序结束。将鼠标移动到要调试的代码 行,单击鼠标右键选择“Insert/Remove Breakpoint”,或者按下F9,可以在该行上添加断点,此时断点代码行前面出现一个棕色的圈,再次选择将清除断点。进入调试状态后,Debug菜 单将取代Build菜单出现在菜单栏中,它下面包含常用的调试操作,如Step Over,单步运行并不跟踪到调用的函数内部;其他还包括Step Into,Step Out, Stop Debugging等调试方法。

(39)简介对话框应用程序中UpdateData函数的作用及其参数含义与使用场合。
  UpdateData只有一个BOOL类型的参数,UpdateData(FALSE)一般用于对话框控件连接的变量值刷新屏幕显示;UpdateData(TRUE)用于获取屏幕数据到对话框控件连接的变量中。

(40)、如何单击除了窗口标题栏以外的区域使窗口移动

当窗口需要确定鼠标位置时Windows向窗口发送WM_NCHITTEST信息,可以处理 该信息使Windows认为鼠标在窗口标题上。对于对话框和基于对话的应用程序,可 以使用ClassWizard处理该信息并调用基类函数,如果函数返回HTCLIENT 则表明 鼠标在客房区域,返回HTCApTION表明鼠标在Windows的标题栏中。

UINT CSampleDialog : : OnNcHitTest (Cpoint point )

{

UINT nHitTest =Cdialog: : OnNcHitTest (point );

return (nHitTest = =HTCLIENT)? HTCApTION : nHitTest ;

}

上述技术有两点不利之处,其一是在窗口的客户区域双击时, 窗口将极大; 其二,它不适合包含几个视窗的主框窗口。还有一种方法,当用户按下鼠标左键 使主框窗口认为鼠标在其窗口标题上,使用ClassWizard在视窗中处理WM_LBUTTODOWN 信息并向主框窗口发送一个WM_NCLBUTTONDOWN信息和一个单击测试HTCApTION

void CSampleView : : OnLButtonDown (UINT nFlags , Cpoint point )

{

CView : : OnLButtonDow (nFlags , pont );

//Fool frame window into thinking somene clicked on

its caption bar .

GetparentFrame ( ) > postMessage (

WM_NCLBUTTONDOWN , HTCApTION , MAKELpARAM (poitn .x , point .y) );

}

该技术也适用于对话框和基于对的应用程序,只是不必调用CWnd : : GetparentFrame 

void CSampleDialog : : OnLbuttonDown (UINT nFlags, Cpoint point )

{

Cdialog : : OnLButtonDow (nFlags, goint ); //Fool dialog into thinking simeone clicked on its caption bar . postMessage (WM_NCLBUTTONDOWN , HTCApTION , MAKELpARM (point.x , point. y ) )


VC++和VB,还有C语言有的区别与联系 VC作为一个主流的开发平台一直深受编程爱好者的喜爱,但是很多人却对它的入门感到难于上青天,究其原因主要是大家对他错误的认识造成的,严格的来说VC++不是门语言,虽然它和C++之间有密切的关系,如果形象点比喻的话,可以C++看作为一种”工业标准",而VC++则是某种操作系统平台下的”厂商标准",而”厂商标准"是在遵循”工业标准”的前提下扩展而来的.而VC(Visual C++)是微软公司开发的,一种使用C++语言的IDE集成开发环境.集编辑、调试、编译、链接、装入等操作于一体的环境,就是一种开发工具。 阅读详情

相关推荐

VC++6.0 MFC实现的UDP点对点聊天工具,含完整工程与可运行exe

直接开箱即用的VC++6.0 UDP聊天客户端,基于MFC框架开发,不依赖服务器,通过输入对方IP和端口即可实时收发文本消息。包内提供全部源码(ChatClientDlg.cpp、ClientSocket.cpp等)、头文件、资源图标(.ico)、界面资源(.rc)、VC6工程文件(.dsp/.dsw),以及编译好的ChatClient.exe可执行程序。同时包含调试所需符号文件(.pdb)、中间编译产物(.obj/.pch)、浏览信息(.bsc)、日志(.plg)和工作区配置(.ncb),支持在VC6环境

e1f2g的博客 221

初学VC++的体会

今日学习过程中,终于做出一个窗口界面。        孙鑫老师的视频中,他在十分钟左右完成的事情,我花了几个小时,不过问题已经解决,总是好的。        在学习期间,也遇到了不少的问题。       首先,一些小的错误,比如一些常量的编写错误,大小写的误写等。这里引发出一个问题,大家一定要自己仔细看下错误的英文介绍,然后再去想解决的办法。由于VC本身并不是一个特别严谨的东西。

fortheother的专栏 464

VC++学习问题总结

VC++学习问题总结,包含本人学习VC++说道的问题

vc6.0在笔记本上显示不清晰的问题解决方法

vc6.0在笔记本上显示不清晰的问题解决方法 修改前的启动图 属性–>兼容性–>更改高DPI设置–>勾选高DPI缩放代替 点应用,然后点确定 修改后启动图 下面看下修改前和修改后的对比 修改前 修改后 ...

Z3r0ne的博客 1299

VC2010使用过程常见问题

目录 问:安装过程中提示可选的产品要如何选择? 问:不小心把代码编辑的窗口或工程窗口点没了怎么办? 问:为什么helloworld运行是这样的空白 问:编译项目时,出现LNK1120错误: 问:编译项目时,出现C2143语法错误 问:编译项目时,出现LNK1123错误: 问:如何调出Ctrl+F5运行按钮: 问:安装过程中提示可选的产品要如何选择? 答:将VC2010用于C语言学习时,这两个产品可以都不选择,直接点下一步。 问:不小心把代码编辑的窗口或工程窗口点没了怎么办? ..

cy2007126的博客 6253

如何学习vc++(vc的用处)

<br />1 vc的用处<br />我感觉下面一些领域比较适合于用vc: 操作系统编程,game,图形设计,corba编程,com<br />编程,网络编程。<br />我谈谈我的体会。我现在在深圳的一家公司从事IP电话网关的开发。通过这个项目,我<br />才真正体会到VC有多么强大,上百个线程同时工作,数据库并发访问,而且全部软件基<br />于COM构造,这样高性能的大型软件,只有VC方显出其英雄本色!不过,在国内,有机会<br />接触这样的大型系统软件的不多。而在做大型系统软件时,对VC程序员的

allen_1986的专栏 2010

C++ C# VC VC.net以及VC++有什么区别和联系?

C++ C# VC VC.net以及VC++有什么区别和联系?(2007-04-25 09:27:56)转载 C/C++是编程语言,C是C++的爸爸,也就是说C++从C发展而来,而C++完全兼容C的语法.国际上有一个专门管理C++的机构,它们负责C++的标准制定. VC++是微软公司的C++编译环境,使用它可以极大的提高编程速度. C#是微软的一种高级编程语言,是微软自己制定的标准,它只是采用了C++的少数特性,跟C++不粘边.C#的特点是安全,用它编制的程序,不容易崩溃.但它的执行效率只有C++程序.

qq_41607336的博客 1342

VC驿站《VC++实战HTTP之POST》教程

来自:http://www.cctry.com/thread-244667-1-1.html VC驿站微信公众订阅号:cctry2009 VC驿站相关 精华帖子、原创文章、Vip课程更新通知、活动T楼通知等等,第一时间通知大家, 还等什么?赶快关注吧! -----------------------------------------------------------

net_syc的专栏 1万+

VC有什么用,该如何学习

导读: <!--google_ad_client = "pub-7058131363132249";/* 468x15, 创建于 08-6-3 */google_ad_slot = "4187223796";google_ad_width = 468;google_ad_height = 15;//--> <script type="text/javascript"

Tisty的兵工厂--新Blog:http://www.UbuntuSky.cn 3451

C++和VC++学习方法

C++和VC++学习方法                                       第一篇: 导航:第一篇 第二篇 第三篇 第四篇 第五篇 第六篇 VC学习方法精髓

liangyou_2008的专栏 8417

vc++学习精髓(收集,整理)

以下是很多VC爱好者的学习经历,希望对大家有所帮助: 我记得我在网上是这么说的:先学win32的SDK,也就是API, 再学MFC,这么一来呢,就先有个基础,MFC是API的封装, 如果API用的熟了,MFC上手就轻松的多了。 我觉得呢,现在不少WINDOWS编程入门的好书很多,多买一些,多看看,多想想。不要心浮气躁。我的经验就是一边看书,一边写程序,看看是不是书上说的那样。看书看明白了不行,自己

4万+

如何学习vc++

1 vc的用处 我感觉下面一些领域比较适合于用vc: 操作系统编程,game,图形设计,corba编程,com 编程,网络编程。 我谈谈我的体会。我现在在深圳的一家公司从事IP电话网关的开发。通过这个项目,我 才真正体会到VC有多么强大,上百个线程同时工作,数据库并发访问,而且全部软件基 于COM构造,这样高性能的大型软件,只有VC方显出其英雄本色!不过,在国内,有机会 接...

weixin_30642561的博客 637

VC有什么用?该如何学习VC

VC有什么用,该如何学习?   VC是一种功能非常强大的技术。在Windows下,VC几乎无所不能。但每个工具都有所长短。这里值列举最实用、最热门的一些应用。   VC可以写WEB上的控件:Web控件大家相对不会陌生。各种流氓插件也是属于其中一种。现在Web控件开发非常火暴。各行各业都存在各式各样的控件。例如,百度的搜霸,银行的各种安全控件。   VC可以开发优秀的基于通信的程序:现在网络发展,各

Prettyboy的专栏 2379

C C++ VC VC++ MFC有什么区别

C C++ VC VC++ MFC有什么区别

sjhfkhsf的博客 419

VC 学习过程----vc++学习精髓(收集,整理) 转载自 拼搏之路

vc++学习精髓(收集,整理) 以下是很多VC爱好者的学习经历,希望对大家有所帮助: 我记得我在网上是这么说的:先学win32的SDK,也就是API, 再学MFC,这么一来呢,就先有个基础,MFC是API的封装, 如果API用的熟了,MFC上手就轻松的多了。 我 觉得呢,现在不少WINDOWS编程入门的好书很多,多买一些,多看看,多想想。不要心浮气躁。我的经验就是一边看书,一边写程序,看看是不是书

sunwenjun的专栏 1196

浅谈如何学习VC++

预备知识:     1. VC是一门语言吗?     VC不是一种语言,而是一种集成开发环境(IDE)。利用VC,可以把源程序编写、编译链接、调试运行等各个工作放在一块完成,很方便。如果你学过 8086汇编语言,一定会对其令人吐血的运行和调试方式印象颇深:) .那么,我们在VC里用的是什么程序设计语言呢? 是 C++。     2.MFC是什么东东?VC和MFC有什么关系?    

木木 1万+

如何学好VC++

如何学好VC++-sunxin(转至程序员之家http://www.sunxin.org/bbs/)作者:孙鑫近期看到很多网友都在问应该如何去学VC++,如何才能快速的掌握VC++。在这里呢,我给大家提一些建议。 一、学习方法 关于学习的方法,我希望大家看一下《致程序员之家论坛的所有会员》这篇帖子 二、什么基础看我的VC++教学视频比较合适 首先确定你的基础,如果你

学习笔记 1433
上一篇: Labview学习之程序Web发布
下一篇: 如何撰写项目计划书
woyoudianlei
博客等级 码龄14年 12粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值