2个回答
展开全部
windows下MFC没有过时
MFC之所以创造了消息机制是为了实现其Frame/View/Doc三位一体的架构。
Frame/View/Doc架构的意义在于将处理消息的职责分配到合理的类中去处理,例如在菜单上点击一个"保存"选项,处理这个消息就应该交给Doc类来实现,而如果点击"更新"选项,则将这个消息交给View类来处理更方便一些。
MFC的消息机制就负责将消息交给合适的类去处理。下面解释消息机制的实现思路:
1.比对思路和消息表:为每一个类建立一个消息表,这个消息表里包括了这个类能够处理的消息有哪些,消息和其处理函数也一一对应。这样的话就可以遍历这张消息表并进行比对来知道这个类可以处理那些消息,并能够一个消息的处理函数。
2.遍历思路:要让Frame里产生的消息在Doc类里进行处理,其思路也是简单的遍历:先看看View里有没有能处理的,要是没有,再看看自己类里能不能处理,要是再不行,再看看Doc类里有没有对应的处理函数。
3.Frame/View/Doc三位一体:这个我也没记清楚,貌似在创建一个Frame的时候都会顺带创建出其对应的View和Doc(单文档的情况,多文档貌似要创建多个)。所以上面可以由View找到其对应的Doc。
MFC之所以创造了消息机制是为了实现其Frame/View/Doc三位一体的架构。
Frame/View/Doc架构的意义在于将处理消息的职责分配到合理的类中去处理,例如在菜单上点击一个"保存"选项,处理这个消息就应该交给Doc类来实现,而如果点击"更新"选项,则将这个消息交给View类来处理更方便一些。
MFC的消息机制就负责将消息交给合适的类去处理。下面解释消息机制的实现思路:
1.比对思路和消息表:为每一个类建立一个消息表,这个消息表里包括了这个类能够处理的消息有哪些,消息和其处理函数也一一对应。这样的话就可以遍历这张消息表并进行比对来知道这个类可以处理那些消息,并能够一个消息的处理函数。
2.遍历思路:要让Frame里产生的消息在Doc类里进行处理,其思路也是简单的遍历:先看看View里有没有能处理的,要是没有,再看看自己类里能不能处理,要是再不行,再看看Doc类里有没有对应的处理函数。
3.Frame/View/Doc三位一体:这个我也没记清楚,貌似在创建一个Frame的时候都会顺带创建出其对应的View和Doc(单文档的情况,多文档貌似要创建多个)。所以上面可以由View找到其对应的Doc。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询