请教消息映射的问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 13:17:11
建立一个单文档名为hello,在hello.cpp中有:
ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
可是我没有在ClassView中找到CWinApp类,是怎么回事?
另外我这些消息映射语句是不是随便写在哪个.cpp文件中(BEGIN_MESSAGE_MAP与END_MESSAGE_MAP之间)都可以?
能介绍下吗
我没有分了
谢谢!

CWinApp是基类,在ClassView中只能看到你自己定义的派生类和自定义类,所以看不到。根据类的多态性原理,如果你的派生类中定义了OnFileNew,OnFileOpen成员,那么运行时就会调用你的成员函数,而非基类的。
对于你的第二个猜想,你完全可以自己试试。多动手是有好处的!

ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
用基类的函数和菜单关联
CWinApp是基类,封装在MFC底层,你看不到这个类。你看到的是CXXXXApp,是从CWinApp派生的子类。
消息映射不能乱放的,你可以自己试试