关于MFC的运行机制中的窗口注册的问题

我知道程序怎么从theapp对象到winmain到消息循环我都知道但就是窗口的注册我不知道哪调用的?谁调用的窗口注册类的函数我知道AfxEndDeferRegisterC... 我知道程序怎么从theapp对象 到winmain 到消息循环 我都知道
但就是窗口的注册我不知道哪调用的?谁调用的
窗口注册类的函数我知道
AfxEndDeferRegisterClass()
但是我不知道这个函数是谁调用的
比如我新建一个MFC的单文档
程序的运行是不是这样的啊?先是 全局的对象的产生就是theapp 然后进入CWinApp的构造函数在构造函数中初始化一些变量 然后进入进程入口函数winmain 在afxwinmain中进行一些操作 包括其中的afxwinlnit来初始化框架和消息循环 然后在initinstance中进行产生窗口 然后我就不知道了 这一句在哪出现的啊CWnd* pWnd= new CWnd pWnd->Create() -> CreateEx ->PreCreateWindow();
展开
 我来答
stone_dongdong
2009-03-11 · TA获得超过2853个赞
知道大有可为答主
回答量:1636
采纳率:0%
帮助的人:1004万
展开全部
theapp 是应用线程,winmain是进程入口。这些是管理资源消息循环等的。跟窗口创建没关系

窗口的创建过程
CWnd* pWnd= new CWnd
pWnd->Create() -> CreateEx ->PreCreateWindow();
PreCreateWindow 里面调 AfxDeferRegisterClass 来执行注册。
AfxDeferRegisterClass 又调用了 AfxEndDeferRegisterClass;
当然MFC的控件类字符串都是在里面预定义的,所以AfxDeferRegisterClass 的参数都是预定义宏。

如果自己定义的窗口(并不是简单的对CButton,CStatic等控件的扩展,那些一般只是覆盖了窗口的消息处理函数,窗口类并没有变),必须自己手动注册了,才能Create
JcCore
2009-03-11 · TA获得超过945个赞
知道小有建树答主
回答量:1768
采纳率:0%
帮助的人:589万
展开全部
高手!学了这么多年!我连门都没入!请指教!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式