| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 702 人关注过本帖
标题:有关MFC窗口函数请教
只看楼主 加入收藏
lzyren2008
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2007-8-12
收藏
 问题点数:0 回复次数:5 
有关MFC窗口函数请教

#include <afxwin.h>
#include <iostream.h>
class CMyApp:public CWinApp
{
public:
BOOL InitInstance();
};

//重新定义的成员函数InitInstance
CMyApp::InitInstance()
{
CFrameWnd* pMainWnd=new CFrameWnd;
pMainWnd->Create(NULL,"Basic MFC Application");
pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
pMainWnd->UpdateWindow();
m_pMainWnd=pMainWnd;//??????
return TRUE;
}
//程序员定义的WinApp的对象theApp
CMyApp MyApp;


上式中,如果不加???那行,程序窗口就无法显示,请问为什么?谢谢!

搜索更多相关主题的帖子: MFC 函数 pMainWnd 窗口 CMyApp 
2007-11-15 21:02
cz522321
Rank: 1
等 级:禁止访问
威 望:2
帖 子:569
专家分:5
注 册:2006-3-13
收藏
得分:0 
不用加那行呀!

2007-11-15 21:35
lzyren2008
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2007-8-12
收藏
得分:0 
不加那行程序窗口就无法显示出来啊,我这运行过了,加了就能显示,不加的话闪一下就没了!????
2007-11-15 21:38
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
看一下基类CWINAPP的一个RUN函数,如果m_pMainWnd == NULL的话会执行AfxOleGetUserCtrl,我不知道是做什么的,但返回值好像是真值,下面就会执行AfxPostQuitMessage(0);这个语句,这个语句会使后面的CWinThread::Run函数不接受程序的消息,而使里面的一个WHILE循环只执行数次就会退出,而没有调用这个的话,就会无限的接受程序的消息,直到接受到关闭消息才会结束.我是这样理解的,不知道是不是正确的,你自己跟踪一下试试
int CWinApp::Run()
{
if (m_pMainWnd == NULL && AfxOleGetUserCtrl())
{
// Not launched /Embedding or /Automation, but has no main window!
TRACE0("Warning: m_pMainWnd is NULL in CWinApp::Run - quitting application.\n");
AfxPostQuitMessage(0);
}
return CWinThread::Run();
}

[此贴子已经被作者于2007-11-16 10:58:23编辑过]


雁无留踪之意,水无取影之心
2007-11-15 22:55
lzyren2008
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2007-8-12
收藏
得分:0 
好像是楼上所说的原因,我去掉if语句就可以了.AfxOleGetUserCtral()牵扯到好多函数,脉路搞不太清楚。我调试了一下,它的返回值应该是真值,不是0,并且与m_pMainWnd是否为空无关,这样,才与调试结果一致.谢谢你的指点!
2007-11-16 10:03
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
是我说错了,是真值,不然怎么会执行AfxPostQuitMessage呢,昨天是因为快停电了,写得太快了

雁无留踪之意,水无取影之心
2007-11-16 10:57
快速回复:有关MFC窗口函数请教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015058 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved