我是新手,工作一直用C,不习惯面向对象的编程,特别是MFC,最困惑的不是语法,而是各个文件之间的调用关系,请高手解释下。以这个为例麻烦解释下:
我打开VC++6.0,新建一个名为“test”的MFC AppWizard(exe)工程。应用程序类型为“基本对话框”,然后新建好一个工程。左边的工作区有三个标签页,分别是“ClassView”“ResourceView”和“FileView”
请解释:每个标签页里面的每项分别有什么用,具体到每个文件或每个类等分别在程序中负责完成什么功能,与其他文件有什么联系。
再有一点,我知道无论哪种语言那种程序都有主函数,主函数相当于用来管理各个对象,为什么在MFC没看到?导致我觉得对象与对象间联系非常松散、甚至不能理解如何调用。
高分献上!!!!
我打开VC++6.0,新建一个名为“test”的MFC AppWizard(exe)工程。应用程序类型为“基本对话框”,然后新建好一个工程。左边的工作区有三个标签页,分别是“ClassView”“ResourceView”和“FileView”
请解释:每个标签页里面的每项分别有什么用,具体到每个文件或每个类等分别在程序中负责完成什么功能,与其他文件有什么联系。
再有一点,我知道无论哪种语言那种程序都有主函数,主函数相当于用来管理各个对象,为什么在MFC没看到?导致我觉得对象与对象间联系非常松散、甚至不能理解如何调用。
高分献上!!!!
如果你了解C++就应该知道C++中类的概念
而类视图就是显示了工程中的类
ResourceView是资源视图
这个视图中列出了工程中用到的资源
这里面包括位图、对话框、版本信息等等
FileView是文件视图
这个视图包含工程中的所有文件
一般情况下一个类由一个头文件(.h)和一个实现文件(.cpp)共同实现
有一个扩展名为.rc的文件对应资源视图MFC中确实没有主函数
这个主函数WinMain被MFC封装了
我们看不到
但这并不影响应用
一个MFC程序至少有两个类
一个应用程序类继承自CWinApp
一个窗口框架类继承自CFrameWnd或CDialog
其中应用程序类会实例化一个对象ThisApp
知道这些就可以了
======================
ClassView是类视图,显示的都是工程中相关的类,对于工程名test的基于对话框的工程来说,一般常用的类有CtestDlg类和CtestApp类,和一个CAboutDlg类,CtestDlg是主对话框类,处理主对话框类的相关信息,CtestApp类是应用程序类,这个类的主要作用你只能自己看书了,CAboutDlg也是一个对话框类,用于管理那么About对话框的。ResourceView是资源视图,显示相关资源的。
FileView是文件视图,显示当然是工程中有关的文件了,不过只显示H文件,CPP文件之类的可以编辑的文件再有一点,我知道无论哪种语言那种程序都有主函数,主函数相当于用来管理各个对象,为什么在MFC没看到?导致我觉得对象与对象间联系非常松散、甚至不能理解如何调用。
====================
MFC的主函数已经封装起来了,起桥梁作用的是CtestApp类,你可以看它的代码,尤其是InitInstance函数。
那么直接点运行按钮你就可以看到界面了如果你想知道这个界面是怎么来的
那按wltg2001说的研究一下InitInstance函数不是所有类都可以接收消息的
消息机制是windows系统的一种工作机制
这个问题你有些混淆你确实应该找些基础的书来看看
了解程序运行的机理和各个中消息的作用
然后你的问题也就可以解决了或者你直接说你想干什么吧?
初始化对象的话
你是对话框工程就在OnInitDialog里处理
http://www.lm30.com/read-langman-tid-2047.html
FileView是文件视图,显示当然是工程中有关的文件了,不过只显示H文件,CPP文件之类的可以编辑的文件
然后你是可以继续用timer弹消息框
问题是如何定位成一个心型
弹出非模式对话框要新建对象吗?还是像messagebox那样写个函数就行?messagebox缺点是不能定位,有没有哪些框的构造函数里就有位置参数的?可以的话请用代码举个创建这种对话框的例。谢谢各位
根据那个视频上的,要新加一个对话框类,因为你最好要自己做一个对话框,先新建一个对话框,再对这个对话框在ClassWizard里建立一个基于CDialog的类就行了