一个困扰已久的初学者问题

yz1025 2012-09-13 10:56:19
一般建立一个MFC工程时,编译器会依照工程名生成一个主类名,
而此主类名一般是继承的CDialog而来的,从FileView都来看,
基本上至少会生成12个档案,基本上应该为:

stdafx.h
stdafx.cpp
AAADlg.h
AAADlg.cpp
AAA.h
AAA.cpp
AAA.hpj
AAA.odl
AAA.rc
Resource.h
AAA.ico
AAA.rc2

若工程名为AAA时,主类名必定为 -> class CAAADlg : public CDialog

而根据档案内含基本源码推断每个档案的用处,唯一令我疑惑的是,
AAA.h和AAA.cpp这2个档案虽然是必须存在的,但是基本上从一开始,
到最后程序完成后完全用不到,所以想请教这2个档案,到底是做什么用的?

全局变量声明都是靠stdafx.h和stdafx.cpp来完成的,视窗上的操作流程控制,
都是靠AAADlg.h和AAADlg.cpp来完成的,当然还要搭配上:
AAA.hpj
AAA.odl
AAA.rc
Resource.h
AAA.ico
AAA.rc2
这几个档案。

所以究竟AAA.h和AAA.cpp的存在意义为何?
...全文
91 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
长尾巴的悟空 2012-09-13
  • 打赏
  • 举报
回复
一个包含另一个所需
ouyh12345 2012-09-13
  • 打赏
  • 举报
回复
是程序的入口
yz1025 2012-09-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

楼主,那是你没用到啊。

运行环境初始化,控件配置,注册控件,都在AAA.cpp里面啊,这里面有个InitInstance()就是真正程序的开始。

CAAADlg dlg;
dlg.doModal()

这只是很小的一部分,只是你窗体功能的实现而已。
[/Quote]

这样应该是我把应该写在AAA.h和AAA.cpp的东西,全都写在AAADlg.h和AAADlg.cpp里面,
因为一开始在窗体上加控件或事件后,双击控件或事件会直接引导我进入AAADlg.cpp里,
所以我一直都把控件或事件的操作流程控制代码写在AAADlg.cpp里面,而其他新增功能,
要不另外建新类别,要不就仿照C的方式增加一个全局模块,把公用函式都建到里面去,
所以一直用不到AAA.h和AAA.cpp,因为我运行环境初始化,控件配置,注册控件,
都在AAADlg.cpp里面做完了。

那到底AAADlg.h和AAADlg.cpp跟AAA.h和AAA.cpp,要怎么区别哪些代码要写到哪边去?
难道是因为我只有一个窗体,所以才感觉不到theApp的用途吗?

傻X 2012-09-13
  • 打赏
  • 举报
回复
楼主,那是你没用到啊。

运行环境初始化,控件配置,注册控件,都在AAA.cpp里面啊,这里面有个InitInstance()就是真正程序的开始。

CAAADlg dlg;
dlg.doModal()

这只是很小的一部分,只是你窗体功能的实现而已。

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧