转载:VC编程入门浅谈(菜鸟必看)

VC编程入门浅谈(菜鸟必看)

看到那些对VC不知从何下手而苦苦挣扎的朋友,希望我的学习之路能给他们一下借鉴。

  学VC并不是传说的那么难,可不下些功夫是学不成的。学编程急不得,没有编程的基础知识上来就学VC肯定碰一头灰,说VC难就难在这点上了。如果硬上,意志坚强的话还能挺过来,但最后还得回头来补习基础知识。意志不坚强的话,很有可能就此放弃,并留下一个VC难得不得了的印象。

  其实,只要踏踏实实一步一步来,学VC很简单。对于没有编程基础的人首先要学习编程的基础知识,如变量,语句,基本的算法等,然后写一些小的程序,实现些常用算法对自己的思维是很好的锻炼,对以后的学习大有好处。起码要能排排序,求个八皇后,算个汉罗塔,再知道一点深、广度优先搜索。如果你已经有一些编程的基础知识了,自然就可以跳过这步。在对编程有一定的认识之后,就应该开始进军C++了。注意,C++是一门语言,而VC则是讲解如何在VC环境下使用MFC类库,学习VC应建立在充分了解C++的基础上的。

学完了C++,最好先找本Win32编程的书,Win32编程是指用Windows API编程,MFC是将众多的API函数进行了封装的类库,用起来方便了不少,但如果没有一些API编程基础,对相关概念不了解,学起来MFC来可能会很费解。API函数有2千多,不需要都学。其实只要知道如何创建窗口、对话框、控件、消息循环,了解了句柄的含义就差不多了,最好再了解一点GDI编程。这个阶段的关键是要理解Win32程序是如何运作的,把握各种窗口间的关系。因为你以后应该很少直接用Win32 SDK编写程序,所以关键是理解整个结构,记住几个函数并没有什么意义。函数用的时候可以现查。

  打好了基础,现在进军VC的障碍都已经扫清了。不过还是应做好充分的思想准备,事情不会那么顺利的。刚开始你就要面对一个瓶颈,大量的紧密关联的知识,使你必须一下理解一个整体,而很难一点点来。可以说学VC最难得就是刚开始。情况有些类似于第一次创建窗口时面对的那长长的程序,很多人就是在此被它难住,放弃了学习。事实上,这几乎是Windows编程的一大特点,突破了这个瓶颈之后便是一片海阔天空,而有着扎实基础的你是一定能闯过去的。建议不要等彻底弄明白一句才看下一句,等能做出个菜单、对话框时便回头再看一遍,几遍之后应该就可以大概明白MFC程序的运作了。这里有个关键,一定要用心体会面向对象编程的精神,努力将眼前的程序与之前的知识联系起来。通过比较成员函数和对应的API函数间的区别,尝试去理解MFC是怎样封装相关的API的。例如,相当多的宏,看起来很奇怪,但你不必理会其实现方法,只要知道如何使用便可,这点也很重要。还有,对于其生成的代码要自己进行分析,偷懒就不能真正理解MFC。

  这是我一个人的学习经验,但经验要因人而异,所以还需要根据个人的情况决定。开始时,教材让怎么办就怎么办,比猫画虎的做出个菜单、对话框,然后试着添加控件。等到不看教程便做出这些时,开始逐字逐句的试着理解MFC程序的组织。若看不懂就跳过看下面的。就这样一遍一遍来。如果觉着头大就先歇上2天,等清醒了再接着来,最好在这期间多找些介绍MFC框架的文章。然后便可试着写个定时器、名片夹之类的小东东,熟悉一下各种控件的使用。

  突破了开始的瓶颈之后再学下去便会越学越容易,因为你可以一点一点的积累知识,而不用担心被卡着了。再过不久,你就可以使用API函数完成一些功能,如在系统托盘加图标,自画列表框等。这时,你也会体会到学习Win32编程的好处了。

  最后,建议有时间的话研究一下各种算法。数据结构是一定要看的。不一定要记住,但至少要知道有那么回事,万一碰到问题可可以知道问题出在哪里。其实,常见的链表等结构以及排序等算法在C++标准模板中已经实现了,不用你去费劲,但有些了解总是有好处的。至于离散数学、线性代数什么的,对于复杂的算法是必要的,其中离散数学是数据结构的基础。
写在前面 在我还在上学的时候,我选择了C++,最初我用VC6作为我的IDE,我看过很多本C++的教材,有的适合我,有的不适合我,其中有一本叫《Visual C++ 2005入门经典》的书帮了我不少的忙。因为通常的C++教材都只会介绍C++的语法什么的,很少会告诉我们如何去编译、运行,告诉我们什么是控制台程序,什么事Win程序,什么是GUI程序,C++能干什么,VC和C++的区别是什么。现在有很多的朋友应该也有这些问题吧? 学C++用C++也有几年了,算不上熟悉,算是初窥门径吧,我想我应该做点什么帮助一下那些和曾经的我一样困惑的朋友,特别是学生朋友,告诉他们他们所困惑的问题的答案。记得我学C++的时候,没有人教,有的时候也走了不少弯路,甚至连调试也不会,也不知道可以通过看调用堆栈看调用次序,还自己慢慢的去搜索,好傻啊。 接下来我会做一个《Visual C++ 2010入门教程》系列,用来帮助初学者。刚开始学的时候是很痛苦的,这个我深有体会,特别是身边还没有人能够指导一二的。内容主要涵盖在Windows下面使用C++进行开发的常见内容,Visual Studio 2010的使用,如何创建新项目,如何调试,如果配置项目属性等等,另外还会介绍Visual C++ 2010中新加如的一些内容,包括一些新的STL组建,一些新的语法支持等等。 由于本人水平有限,其中难免有错误,希望大家谅解,如果大家有发现问题还请务必及时指出来,否则误导了他人我就罪不容恕了。 注意,本教程非C++教程,不会教你C++,只会教你如何使用 Visual C++ 2010去练习去学习其它C++教材上面的程序。因此建议大家认真的去看其他的C++教程,在使用Visual C++ 2010实践的时候如果遇到问题可以到这里来参考。推荐《C++ Primer》、《C++程序设计语言》《Visual C++ 2008入门经典》
第一章 VC入门 1.1 如何学好VC 1.2 理解Windows消息机制 1.3 利用Visual C++/MFC开发Windows程序的优势 1.4 利用MFC进行开发的通用方法介绍 1.5 MFC中常用类、宏、函数介绍 第二章 图形输出 2.1 和GUI有关的各种对象 2.2 在窗口中输出文字 2.3 使用点、刷子、笔进行绘图 2.4 在窗口中绘制设备相关位图、图标、设备无关位图 2.5 使用各种映射方式 2.6 多边形和剪贴区域 第三章 文档视结构 3.1 文档 视图 框架窗口间的关系和消息传送规律 3.2 接收用户输入 3.3 使用菜单 3.4 文档、视、框架之间相互作用 3.5 利用序列化进行文件读写 3.6 MFC中所提供的各种视类介绍 第四章 窗口控件 4.1 Button 4.2 Static Box 4.3 Edit Box 4.4 Scroll Bar 4.5 List Box/Check List Box 4.6 Combo Box/Combo Box Ex 4.7 Tree Ctrl 4.8 List Ctrl 4.9 Tab Ctrl 4.A Tool Bar 4.B Status Bar 4.C Dialog Bar 4.D 利用AppWizard创建并使用ToolBar StatusBar Dialog Bar 4.E General Window 4.F 关于WM_NOTIFY的使用方法 第五章 对话框 5.1 使用资源编辑器编辑对话框 5.2 创建有模式对话框 5.3 创建无模式对话框 5.4 在对话框中进行消息映射 5.5 在对话框中进行数据交换和数据检查 5.6 使用属性对话框 5.7 使用通用对话框 5.8 建立以对话框为基础的应用 5.9 使用对话框作为子窗口 第六章 网络通信开发 6.1 WinSock介绍 6.2 利用WinSock进行无连接的通信 6.3 利用WinSock建立有连接的通信
第2章 控件应用 75 2.1 按钮控件典型实例 76 实例049 AVI动画按钮 76 实例050 GIF动画按钮 78 实例051 图文按钮 80 实例052 不规则按钮 82 实例053 热点按钮 84 2.2 编辑框控件典型实例 86 实例054 为编辑框设置新的系统菜单 87 实例055 为编辑框控件添加列表选择框 88 实例056 多彩边框的编辑框 90 实例057 改变编辑框文本颜色 91 实例058 不同文本颜色的编辑框 92 实例059 位图背景编辑框 93 2.3 静态文本控件典型实例 94 实例060 电子计时器 94 实例061 使用静态文本控件设计群组框 96 实例062 制作超链接控件 97 2.4 列表框控件典型实例 99 实例063 利用列表框控件实现标签式数据选择 99 实例064 具有水平滚动条的列表框控件 100 实例065 列表项的提示条 101 实例066 位图背景列表框控件 104 2.5 组合框控件典型实例 105 实例067 将数据表中的字段添加到组合框控件 106 实例068 带查询功能的组合框控件 107 实例069 自动调整组合框的宽度 108 实例070 颜色组合框 109 实例071 多列显示的组合框 111 实例072 带图标的组合框 113 实例073 显示系统盘符组合框 114 2.6 列表视图控件典型实例 115 实例074 Windows资源管理器 115 实例075 利用列表视图控件浏览数据 118 实例076 利用列表视图控件制作导航界面 120 实例077 在列表视图中拖动视图项 121 实例078 具有排序功能的列表视图控件 123 实例079 具有文本录入功能的列表视图控件 126 实例080 使用列表视图设计登录界面 128 2.7 树视图控件典型实例 129 实例081 多级数据库树状结构数据显示 129 实例082 节点拖动功能的树控件 131 实例083 带复选功能的树状结构 134 实例084 三态效果树控件 135 实例085 修改树控件节点连线颜色 137 实例086 位图背景树控件 138 实例087 显示磁盘目录 140 实例088 树型提示框 141 2.8 RichEdit控件典型实例 143 实例089 利用RichEdit显示Word文档 143 实例090 利用RichEdit控件实现文字定位与标识 144 实例091 利用RichEdit控件显示图文数据 146 实例092 在RichEdit中显示不同字体和颜色的文本 148 实例093 在RichEdit中显示GIF动画 149 2.9 滚动条控件典型实例 157 实例094 自定义滚动条控件 157 2.10 进度条控件典型实例 162 实例095 进度条百分比显示 162 实例096 渐变颜色的进度条 164 2.11 工具提示控件典型实例 165 实例097 应用工具提示控件 165 2.12 滑块控件典型实例 167 实例098 使用滑块控件设置颜色值 167 实例099 绘制滑块控件 168 2.13 标签控件典型实例 170 实例100 应用标签控件 170 实例101 自定义标签控件 172 2.14 控件数组典型实例 175 实例102 向窗体中动态添加控件 175 实例103 公交线路模拟 177
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值