新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     >>计算机科学论坛<<     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版用于讨论编程和软件设计的技巧
    [返回] 计算机科学论坛计算机技术与应用『 编程心得 』 → 如何学VC++? 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 5837 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 如何学VC++? 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     葛靖青001 美女呀,离线,快来找我吧!水瓶座1984-2-14
      
      
      等级:大三(研究MFC有点眉目了!)
      文章:168
      积分:595
      门派:XML.ORG.CN
      注册:2010/11/2

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给葛靖青001发送一个短消息 把葛靖青001加入好友 查看葛靖青001的个人资料 搜索葛靖青001在『 编程心得 』 的所有贴子 点击这里发送电邮给葛靖青001 引用回复这个贴子 回复这个贴子 查看葛靖青001的博客楼主
    发贴心情 如何学VC++?

    一、VC是什么?学VC是学什么?

      首先VC是一个软件(IDE集成开发环境)(编译、编辑、调试)

      C和C++。但C++中的有些特性是不用的,例如I/O流,多态继承

      WindowsSDK(软件开发工具)

      VC的灵魂:MFC(微软基础类库)

      ATL(ActiveX模板类库)

      其他的SDK,如OpenGL,DirectX,ActiveMoive,DrawDib(WinG)

      VC是许许多多技术的综合,就好象少林72般绝技,一般在应用中学会其中很少一部分就够了。我们的现在目的,其实不过是学一套少林长拳。这套长拳应包括:

      1、养成一种严谨的软件开发习惯,熟悉软件工程的基本原则。

      2、C语言基础

      3、C++最基本内容:类、继承性、封装性、多态性的概念

      4、如何用向导建立一个程序框架

      5、设计菜单

      6、设计工具条

      7、设计和使用对话框,熟悉最常用的对话框控件:按钮、静态文本、编辑框等

      8、知道怎样新建类、成员函数、成员变量、消息处理函数。

      9、了解最常用的Windows消息:如WM_PAINT(重绘窗口),鼠标按下、弹起、移动,初始化对话框,等。

      10、了解最简单的GDI(图形设备接口):写文字、画框、画点、画线、画圆,设置画笔、画刷。

      11、熟悉最常用的MFC类:

      CWnd

      CDocument

      CView

      CDC

      CDialog

      CWinApp

      CGdiObject及子类

      CString、CPoint、CRect、CSize等简单数据类型

      CFile

      以上提到的这些内容,是每个人都会用到的内容。

      二、MFC简介

      上述主要内容都是与实际操作关系非常密切的,在此不可能讲清楚;而且,这些在一般的书里都会讲到。我主要将最重要的MFC介绍一下。

      MFC是对WindowsAPI的封装,大大简化了我们的工作;学VC主要就是要学MFC,大约有100多个类,但常用的也就二三十个。应该象背4级单词一样将这些常用类搞懂;当然不要死记,要通过看帮助、看例子、动手练习来学会它们;而且,并非每个类的内部的所有函数都要学会,要日积月累。如果真的想成为高手,做个笔记本把自己认为重要的类、函数记下来,随时学习,也是很好的突击方法。

      下面介绍最重要的MFC。

      CWnd:窗口,它是大多数“看得见的东西”的父类(Windows里几乎所有看得见的东西都是一个窗口,大窗口里有许多小窗口),比如视图CView、框架窗口CFrameWnd、工具条CToolBar、对话框CDialog、按钮CButton,etc;一个例外是菜单(CMenu)不是从窗口派生的。该类很大,一开始也不必学,知道就行了。

      CDocument文档,负责内存数据与磁盘的交互。最重要的是OnOpenDocument(读入),OnSaveDocument(写盘),Serialize(读写)

      CView视图,负责内存数据与用户的交互。包括数据的显示、用户操作的响应(如菜单的选取、鼠标的响应)。最重要的是OnDraw(重画窗口),通常用CWnd::Invalidate()来启动它。另外,它通过消息映射表处理菜单、工具条、快捷键和其他用户消息。你自己的许多功能都要加在里面,你打交道最多的就是它。

      CDC设备文本。无论是显示器还是打印机,都是画图给用户看。这图就抽象为CDC。CDC与其他GDI(图形设备接口)一起,完成文字和图形、图像的显示工作。把CDC想象成一张纸,每个窗口都有一个CDC相联系,负责画窗口。CDC有个常用子类CClientDC(窗口客户区),画图通常通过CClientDC完成。

      CDialog对话框

      CWinApp应用程序类。似于C中的main函数,是程序执行的
    入口和管理者,负责程序建立、消灭,主窗口和文档模板的建立。最常用函数InitInstance():初始化。
      CGdiObject及子类,用于向设备文本画图。它们都需要在使用前选进DC。

      CPen笔,画线

      CBrush刷子,填充

      CFont字体,控制文字输出的字体

      CBitmap位图

      CPalette调色板

      CRgn区域,指定一块区域可以用于做特殊处理。

      CFile文件。最重要的不外是Open(打开),Read(读入),Write(写)

      CString字符串。封装了C中的字符数组,非常实用。

      CPoint点,就是(x,y)对

      CRect矩形,就是(left,top,right,bottom)

      CSize大小,就是(cx,cy)对(宽、高)

      三、用好MSDN和例子

      作为提高,推荐看的例子有:

      nHello最简单的程序框架

      nScribble鼠标绘图。教程:编程基础,GDI

      nDiblook图像处理最简单范例

      nMFCIE因特网浏览器

      nEnroll数据库

      nDaoviewDao(数据访问对象)范例。树型和列视控件

      nCubeOpenGL范例,画一个不断旋转的方块

      nHierSvrOLE服务器

      nOclientOLE包容器

      nDrawcli鼠标绘图。也包括OLE。

      nWordPad写字板。OLE

      四、几点经验

      A.为什么要用Windows而不是DOS编程

      Windows编程并不比DOS编程难很多,只是在刚刚接触的时候感到头绪繁多,不知从何下手。实际上,如果你会C语言,你会发现Windows编程的难度并不比当年学C语言时大。DOS编程要想成为高手,也需要学习几百个函数(无论是TC、BC、MicrosoftC),并要深入了解汇编语言级的DOS功能调用。而现在在Windows下,付出相同的工作量,你却可以获得几倍的收益。如果你以前熟悉DOS编程,现在再搞Windows编程,只要两个星期肯定会感到巨大的优越性:在DOS下,每一件事都要自己干,而且还有64K内存、显示精度等的限制,实在是事倍功半了。

      B.为什么要用VC而不是其他Windows编程语言

      n大多数大型软件(包括Windows自己)都是用C、C++编的,所以可以利用的源代码特别多。例如Photoshop,就有VC的编程接口。的其他的语言都不如VC有历史优势。而且VC的开发工具特别多,从控件公司到硬件开发商,其产品很少敢不提供VC接口的。

      nVC适合组织大工程(VB就不行)

      nBorlandC++或C++Builder也很不错,并不比VC差。但BC的版本兼容性不好,从3.1到4.0就出现“代沟”,而且VC提供了极为丰富的文档和范例,VC的参考资料也远比BC多。并且VC与其他的VisualStudio成员可以协调工作,对软件工程有利。

      n

      C.开始不要学WinAPI编程,但以后最好学学WinAPI

      特别要注意,开始不要买讲WindowsSDK编程的书。一个臭名昭著的例子就是“HelloWorld”。各种计算机语言在入门课中往往都给出一个例子,显示一行文字“HelloWorld”,无论是在Basic、C、Pascal,甚至汇编中,这个最简单的小程序都几行就可以写完。但在早期的Windows编程中,刚才讲到的“HelloWin”这个有名的例子就要组织一个工程、写上几百行代码才能实现。这就吓跑了很多想学Windows编程的人。实际上,在Windows下显示“Helloworld”,最简单的方法只要5行就够了:

      #include“windows.h”

      voidWinMain()

      {

      MessageBox(NULL,”HelloWorld!”,”MyFirstWindowsApplication”,MB_OK);

      }

      当然这个程序只建立了一个最简单的对话框,但这已经够了。

      如果你没有SDK编程的经验,学VC就是要利用MFC绕过Windows编程的许多细节。有好的工具为什么不用呢?现在你在VC写一个”HelloWorld”
    ,只要写一行代码就可以了。
      voidCYourView::OnDraw(CDC*pDC)

      {

      //…….其他的代码

      pDC->TextOut(100,100,”HelloWorld!”);

      }

      但MFC不是万能的,WinAPI和VC中有很多功能在MFC中并不能反映出来。在入门后,要想发挥VC的完全能力,WindowsAPI还是非常重要的。而且,这些API在其他Windows语言中也用得到。


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    ---人之所以能,是相信能!!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2010/11/5 11:08:00
     
     GoogleAdSense水瓶座1984-2-14
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 编程心得 』 的所有贴子 点击这里发送电邮给Google AdSense 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/2 2:54:14

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    5,079.102ms