我是新手,工作一直用C,不习惯面向对象的编程,特别是MFC,最困惑的不是语法,而是各个文件之间的调用关系,请高手解释下。以这个为例麻烦解释下:
我打开VC++6.0,新建一个名为“test”的MFC AppWizard(exe)工程。应用程序类型为“基本对话框”,然后新建好一个工程。左边的工作区有三个标签页,分别是“ClassView”“ResourceView”和“FileView”
请解释:每个标签页里面的每项分别有什么用,具体到每个文件或每个类等分别在程序中负责完成什么功能,与其他文件有什么联系。
再有一点,我知道无论哪种语言那种程序都有主函数,主函数相当于用来管理各个对象,为什么在MFC没看到?导致我觉得对象与对象间联系非常松散、甚至不能理解如何调用。
高分献上!!!!

解决方案 »

  1.   

    ClassView是类视图
    如果你了解C++就应该知道C++中类的概念
    而类视图就是显示了工程中的类
    ResourceView是资源视图
    这个视图中列出了工程中用到的资源
    这里面包括位图、对话框、版本信息等等
    FileView是文件视图
    这个视图包含工程中的所有文件
    一般情况下一个类由一个头文件(.h)和一个实现文件(.cpp)共同实现
    有一个扩展名为.rc的文件对应资源视图MFC中确实没有主函数
    这个主函数WinMain被MFC封装了
    我们看不到
    但这并不影响应用
    一个MFC程序至少有两个类
    一个应用程序类继承自CWinApp
    一个窗口框架类继承自CFrameWnd或CDialog
    其中应用程序类会实例化一个对象ThisApp
    知道这些就可以了
      

  2.   

    请解释:每个标签页里面的每项分别有什么用,具体到每个文件或每个类等分别在程序中负责完成什么功能,与其他文件有什么联系。
    ======================
    ClassView是类视图,显示的都是工程中相关的类,对于工程名test的基于对话框的工程来说,一般常用的类有CtestDlg类和CtestApp类,和一个CAboutDlg类,CtestDlg是主对话框类,处理主对话框类的相关信息,CtestApp类是应用程序类,这个类的主要作用你只能自己看书了,CAboutDlg也是一个对话框类,用于管理那么About对话框的。ResourceView是资源视图,显示相关资源的。
    FileView是文件视图,显示当然是工程中有关的文件了,不过只显示H文件,CPP文件之类的可以编辑的文件再有一点,我知道无论哪种语言那种程序都有主函数,主函数相当于用来管理各个对象,为什么在MFC没看到?导致我觉得对象与对象间联系非常松散、甚至不能理解如何调用。
    ====================
    MFC的主函数已经封装起来了,起桥梁作用的是CtestApp类,你可以看它的代码,尤其是InitInstance函数。
      

  3.   

    建议抛弃VC6! 看看VC2008 把 VC2008 有三个文件项目 一个 头文件 一个原文件 一个资源文件
      

  4.   

    再问:我具体点来说,因为找不到主函数,比如我要在程序运行时创建一个窗口,我的代码在哪里添加?必须在别的类的成员函数里创建吗?据我所知,MFC是消息机制的,那就是说,所有类事先创建好放在那儿,如果没有消息来激活消息处理函数,也没有(指看不到)一直运行的主函数,我应该在哪里创建新的对象。如果有一个类似主函数的能顺序执行,那我的问题就解决了,这样我可以在这个类似主函数的函数里调用、创建、删除对象
      

  5.   

    你既然建了一个对话框程序
    那么直接点运行按钮你就可以看到界面了如果你想知道这个界面是怎么来的
    那按wltg2001说的研究一下InitInstance函数不是所有类都可以接收消息的
    消息机制是windows系统的一种工作机制
    这个问题你有些混淆你确实应该找些基础的书来看看
    了解程序运行的机理和各个中消息的作用
    然后你的问题也就可以解决了或者你直接说你想干什么吧?
    初始化对象的话
    你是对话框工程就在OnInitDialog里处理
      

  6.   

    直接说,我想做一个程序,在系统中弹出很多消息框拼个图案,类似下面链接那个,我已经实现了开始时把默认就有的对话框隐藏掉(通过timer设置对话框某属性为隐藏),然后我应该在哪创建出新的消息框?
    http://www.lm30.com/read-langman-tid-2047.html
      

  7.   

    看了一下那个视频,应该是在OnInitDialog里就直接设置定时器,然后在OnTimer里弹出非模态对话框吧
      

  8.   

    ClassView是类视图,显示的都是工程中相关的类,对于工程名test的基于对话框的工程来说,一般常用的类有CtestDlg类和CtestApp类,和一个CAboutDlg类,CtestDlg是主对话框类,处理主对话框类的相关信息,CtestApp类是应用程序类,这个类的主要作用你只能自己看书了,CAboutDlg也是一个对话框类,用于管理那么About对话框的。ResourceView是资源视图,显示相关资源的。
    FileView是文件视图,显示当然是工程中有关的文件了,不过只显示H文件,CPP文件之类的可以编辑的文件
      

  9.   

    首先我觉得这个东西像病毒
    然后你是可以继续用timer弹消息框
    问题是如何定位成一个心型
      

  10.   

    强烈建议楼主采用vc2005以上版本,那将对你这种新手事半功倍,我是从vc6一直涌上来的
      

  11.   


    弹出非模式对话框要新建对象吗?还是像messagebox那样写个函数就行?messagebox缺点是不能定位,有没有哪些框的构造函数里就有位置参数的?可以的话请用代码举个创建这种对话框的例。谢谢各位
      

  12.   


    根据那个视频上的,要新加一个对话框类,因为你最好要自己做一个对话框,先新建一个对话框,再对这个对话框在ClassWizard里建立一个基于CDialog的类就行了
      

  13.   

    同道中人,我也刚接触mfc,建议楼主看一个孙鑫的书,前3章或者4章,按照他的顺序建立一个工程,这些基础问题迎刃而解希望能帮到你