请教一个MDI程序中的问题~~~~
利用向导建立一个MDI程序的时候会自动生成五个类,分别是CxxxApp,CxxxDoc,CxxxView,CMainFrame,CChildFrame,假设菜单中有一个ID_MENU_TEST项,我在Ctrl+W的类向导中选择上述5个不同的类,可以为ID_MENU_TEST创建5个属于不同类的映射函数,任意生成一个都可以被单击菜单项触发,请问分别在这五个类中的五个映射函数有什么区别吗?一般在那个类型创建这个函数?
[解决办法]
有数据交换
一般放在CxxxDoc中
----
和显示相关
---
一般放在
CxxxView中
---
没规定死..
[解决办法]
一般放在view类中 如果你每个函数里都做了消息响应 他的响应顺序是 View Doc MainFrame App
[解决办法]
一般放在view类中
因为消息的响应次序依次为:view doc childframe app mainframe
[解决办法]
五个映射函数没有有区别.
放在哪里读可以。
其实我想lz是想问的是为什么五个类都可以呢,真神了,这消息怎么就那么神通广大,到处 "乱跑 "呢,这个你得好好看看mfc的源代码了,实际上mfc采用了一种消息链的松耦合方式进行消息传递。消息首先发送到窗口处理过程,窗口处理过程里大概有如下的伪码
if( !view -> DealMessage(...) )
{
if( !doc-> DealMessage(...) )
{
if( !chidframe -> DealMessage(...) )
{
......
}
}
}
通过这种方式mfc把消息传递到整个应用程序的各个部分。