MFC框架程序剖析(5)

最后一个讲解,我们来讲一个按钮的例子加深一下对MFC框架的理解吧。


首先,我们知道关于按钮的类是CButton,派生于CWnd,也是一个窗口类我们利用这个类定义一个窗口类对象,创建完对象之后,你要产生这个窗口的话还要用到我们之前提过的CreateEx函数,从而生成窗口。

那创建在哪里呢?我们再把图拿出来:

明显我们想把按钮显示在视窗口上,那么MFC又是采用了一种消息映射机制(可以简单理解成产生消息之后我们可以捕获到这个消息并且去执行相应的操作),那么我们可以在视窗口生成的时候同时生成按钮,这个时候我们注意:


1.视窗口生成的时候会产生WM_CREATE这个消息,然后我们需要一个函数来响应这个消息,那就是OnCreate这个函数啦,我们可以在这里生成我们的按钮。


2.但是我们在CTESTView这个类的主文件(.c)并没有找到OnCreate这个函数,默认是不给的,这个时候我们自行添加,在CLASS VIEW上右键选择CLASS Wizard,选择MESSAGE,这时候我们就可以添加函数啦。



3.添加完之后我们在CTESTView.c这个文件里可以看到OnCreate函数,然后我们来生成这个按钮:

(1)CButton btn;定义一个按钮对象,然后调用其btn.Create。


(2)若是在OnCreate函数里面定义的话,我们可以看到视窗口并没有生成按钮,因为btn此时是个局部对象,函数执行完它的生命周期也就结束了。


(3)在CTESTView这个类的声明中定义,btn便为全局对象了,这时在OnCreate函数用使用btn.Create(),视窗口便可以看到我们的按钮了。


4.最后,看一下Create函数的使用:

BOOL Create(LPCTSTR lpszClassName,
LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd, UINT nID,
CCreateContext* pContext = NULL);


总结:看完实操一遍加深理解,推荐书:孙鑫老师的VC++深入了解,理解完框架和消息映射机制之后后面的学习也就是熟悉使用其他的类而已了~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值