Frame1中 说main函数调用全局函数AfxGetApp以取得theApp的对象指针
extern CMyWinApp theApp;
CWinApp* AfxGetApp()
{
return theApp.m_pCurrentWinApp;
}
可是调用后明明得到的是指向CWinApp的啊,怎么是指向theApp的指针呢?
一直不明白 求达人分析:)
谢谢
extern CMyWinApp theApp;
CWinApp* AfxGetApp()
{
return theApp.m_pCurrentWinApp;
}
可是调用后明明得到的是指向CWinApp的啊,怎么是指向theApp的指针呢?
一直不明白 求达人分析:)
谢谢
解决方案 »
- 如何得到正弦表的数值
- picture控制刷新(重绘)问题,请高手分析一下原因(很困惑,网上没找到好方法)
- 太欺负人! 顶者有分
- H.263图像格式中:QCIF、CIF等格式在COMPVARS结构与BITMAPINFO结构中要怎么设置,请高手指教
- 那儿有英特尔的C++编译器下载?
- 怎样让对话栏中的对话框响应onSize消息?
- 怎么让一个控件在ENABLE的状态下得不到焦点?
- 请问哪里有《VISUAL C++MFC扩展编程实例》的配套光盘下载?
- 请教高手-- 关于控制另外应用程序的…………
- 救命啊!!CSocket类的OnReceive函数只调用了一次
- 求一个简单的网络聊天通讯的例子?能够实现这样的功能:希望用winsock编程?
- 初学MFC
如果调用的是虚函数,则用的是CMyWinApp的版本
为什么不直接这样呢?
extern CMyWinApp theApp;
CMyWinApp* AfxGetApp()
{
return theApp.m_pCurrentWinApp;
}
extern CMyWinApp theApp;
COBject* AfxGetApp()
{
return theApp.m_pCurrentWinApp;
}
这样的话也是可以的吧 可是为什么要这样啊
刚看MFC....
AfxGetApp() 应该是基类CWinApp的成员吧
返回子类的对象指针好吗?
而且CMyWinApp是根据你建的工程名定的
如果换了名字,那函数的返回值是否也得跟着换?所以才需要虚函数
而且这样返回的是CWinApp对象的指针呀 不是指向CMyWinApp的对象的吧?
我就是不明白为什么要返回CWinApp对象的指针,为什么不返回CObject对象的指针呢?
AfxGetApp() 不是谁的成员所以更要返回基类的指针了为什么不返回最原始类的指针?
因为如果返回最原始类的指针,你就只能用 CObject类的 成员了(或者其派生类覆盖 CObject类的成员)
而cwinapp必然增加了更多的成员,而你的cmywinapp一般不会比cwinapp多多少当然也可以强制类型转换,不过得明白这个函数是做什么用的,看名字就明白需要得到全局的app对象,也就是theapp,返回CObject很不恰当