MFC对话框OnInitDialog()初始化问题

背景:新建一个对话框类继承于CDialog,CDialog类中定义了一个虚函数OnInitDialog(),希望通过重载此函数进行自己个性化操作

方法:作为一个MFC的菜鸟,首先想到的方法就是不考虑父类中的初始化函数,在自己的类中直接声明定义一个自己的初始化函数,然后在类的构造函数中进行调用,从而实现初始化的目的。这种方法可能粗略想一下,还真说不定能行。执行起来确实能行,但是执行起来的有个问题就是,在这个初始化函数中进行自己的一些个性化操作的时候根本就行不通,原因很简单就是,这个函数是在类构造函数中使用的。这个时候类中很多控件或者资源都没有进行初始化(具体MFC的机制有待于进一步研究)。所以定义一个这样的初始化函数没有丝毫的意义。

然后想到了去扑捉初始化消息。对话框初始化消息不是在对象生成的时候发送的,在资源,控件初始化好之后,进行实际操作的时候发送的,所以如果扑捉到这个消息,直接处理这个消息应该就能达到目的。网上也有很多这方面的建议。但是在对话框的消息列表中找了半天,没找到对话框的初始化消息。但这个消息本身确实存在的。郁闷了一阵子,发现这个消息在MFC后期的版本中就被封装了(不是真正的封装)。

最后只能通过重载父类中的初始化函数,然后就成功了呗,这也是最简便的方法,最合理的方法,也是MFC设计的时候所希望的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值