| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1159 人关注过本帖
标题:CWnd::GetDlgItem 在本程序中的作用
只看楼主 加入收藏
muxiaoyao
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-7-28
收藏
 问题点数:0 回复次数:1 
CWnd::GetDlgItem 在本程序中的作用
在论坛中看了版主的“窗口切换分割详解”一文,对第一个程序中的一句话很不理解,如下:

void CMainFrame::SwitchToView(eView nView)
{
CView* pOldActiveView = GetActiveView();
CView* pNewActiveView = (CView*) GetDlgItem(nView);//就是这句,好像用它得到的pNewActiveView一直都是NULL,我把它换成下面一句,程序照样可以运行,给个理由?
// CView* pNewActiveView = NULL;
if (pNewActiveView == NULL)
{
switch (nView)
{
case View1:
pNewActiveView = (CView*) new CView1;
break;
case View2:
pNewActiveView = (CView*) new CView2;
break;
case View3:
pNewActiveView = (CView*) new CTestView;
break;
}
CCreateContext context;
context.m_pCurrentDoc = pOldActiveView->GetDocument();
pNewActiveView->Create(NULL, NULL, WS_BORDER|WS_CHILD,
CFrameWnd::rectDefault, this, nView, &context);
pNewActiveView->OnInitialUpdate();
}

SetActiveView(pNewActiveView);
pNewActiveView->ShowWindow(SW_SHOW);
pOldActiveView->ShowWindow(SW_HIDE);
pOldActiveView->SetDlgCtrlID(m_nCurrentView);
pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
m_nCurrentView = nView;
RecalcLayout();
}
搜索更多相关主题的帖子: CWnd GetDlgItem 
2007-07-29 15:15
muxiaoyao
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-7-28
收藏
得分:0 
通过我自己的分析,这个地方CView* pNewActiveView = (CView*) GetDlgItem(nView); nView根本不是一个View类,也不是一个控件,它仅是一个enum结构的成员,所以个人感觉这样写是没有道理的,请高手指正
2007-07-29 15:36
快速回复:CWnd::GetDlgItem 在本程序中的作用
数据加载中...
 
   



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

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