⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_18782.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:18782 发表者:我是一个兵 发表日期:2002-10-23 14:11:14
<br>主题:green pig 进来看看
<br>内容:我在菜单栏加了一个实验选择,有三个下拉菜单,来选择form1,form2,form3.在CMainFrame中增加了SwitchView(int vwType)来切换视图.出现这个错误:<BR>E:\Mdi切换视图\MainFrm.cpp(123) : error C2065: 'm_wndSplitter' : undeclared identifier<BR>"m_wndSplitter" 在在ChildFrm中定义,而且我加了ChildFrm.h,没有用呀.为什么?<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:Norton AntivVirus 回复日期:2002-10-23 14:13:21
<br>内容:要通过ChildFrm的指针来访问m_wndSplitter<BR><BR>并且将m_wndSplitter&nbsp;&nbsp; public出来<BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:我是一个兵 回复日期:2002-10-23 14:24:57
<br>内容:哈哈,来的早呀。今天的马甲不错,能否给我定做一个<BR>你说的有理,但是不中呀,我的程序如下,你看看:<BR>void CMainFrame::SwitchView(int vwType)<BR> {<BR>&nbsp;&nbsp;&nbsp;&nbsp; CRect rect;<BR>&nbsp;&nbsp;&nbsp;&nbsp; GetClientRect(&rect);<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; CSize right(rect.Width()*3/4, rect.Height());<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; CCreateContext Context;<BR>&nbsp;&nbsp;&nbsp;&nbsp; Context.m_pCurrentDoc = GetActiveView()-&gt;GetDocument();<BR>&nbsp;&nbsp;&nbsp;&nbsp;Context.m_pCurrentFrame = this;<BR>&nbsp;&nbsp;&nbsp;&nbsp; Context.m_pLastView = (CView*)m_wndSplitter.GetPane(0,1);<BR>&nbsp;&nbsp;&nbsp;&nbsp; Context.m_pNewDocTemplate = Context.m_pCurrentDoc-&gt;GetDocTemplate();<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_wndSplitter.DeleteView(0,1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; switch( vwType )<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp; case CForm1:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Context.m_pNewViewClass = RUNTIME_CLASS(CForm1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<BR>&nbsp;&nbsp;&nbsp;&nbsp; case CForm2:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Context.m_pNewViewClass = RUNTIME_CLASS(CForm2);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>&nbsp;&nbsp;&nbsp;&nbsp;case CForm3:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Context.m_pNewViewClass = RUNTIME_CLASS(CForm3);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;default:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBox("\t无法识别的视图类!");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; m_wndSplitter.CreateView(0,1,Context.m_pNewViewClass,right, &Context);<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; CView* pView =(CView*) m_wndSplitter.GetPane(0,1);<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; pView-&gt;GetParentFrame()-&gt;RecalcLayout();<BR>&nbsp;&nbsp;&nbsp;&nbsp; m_wndSplitter.RecalcLayout();<BR>&nbsp;&nbsp;&nbsp;&nbsp; pView-&gt;OnInitialUpdate();&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; m_wndSplitter.SetActivePane(0,1);<BR>}<BR>如果大方向有问题,也请提出来。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:徐景周 回复日期:2002-10-23 14:54:03
<br>内容:http://www.copathway.com/cndevforum/subject_view.asp?subject_id=18644&forum_id=
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Norton AntivVirus 回复日期:2002-10-23 14:56:23
<br>内容:m_wndSplitter.CreateView(0,1,Context.m_pNewViewClass,right, &Context);<BR><BR> 你是说这个m_wndSplitter不能用?<BR><BR>在哪里定义的?<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Norton AntivVirus 回复日期:2002-10-23 15:10:05
<br>内容:哎,还是用徐老大的例子吧
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:我是一个兵 回复日期:2002-10-23 17:05:13
<br>内容:不好意思,我刚才有事出去了.<BR>徐老大的例子打不开呀,妈妈的,该死的校园网.<BR>m_wndSplitter我在childfrm.h中定义的.m_wndSplitter都不行的
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:Norton AntivVirus 回复日期:2002-10-23 17:43:01
<br>内容:假设你的ChildFrm的指针时pChild;<BR><BR>如果没有这个指针,你必须要得到这个指针!<BR><BR>然后:<BR><BR>pChild-&gt;m_wndSplitter...............<BR><BR>都加上pChild
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:我是一个兵 回复日期:2002-10-23 17:57:13
<br>内容:查了一下MSDN,下面能得到那个指针<BR>&nbsp;&nbsp;&nbsp;&nbsp;CMDIFrameWnd *pFrame = (CMDIFrameWnd *)AfxGetApp()-&gt;m_pMainWnd;<BR>&nbsp;&nbsp; // Get the active MDI child window.<BR>&nbsp;&nbsp; CMDIChildWnd *pChild =<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(CMDIChildWnd *) pFrame-&gt;GetActiveFrame();<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp; CMDIView *pView = (CMDIView *) pChild-&gt;GetActiveView();<BR>但还是有问题,问题如下:<BR>Compiling...<BR>MainFrm.cpp<BR>E:\Mdi切换视图\MainFrm.cpp(132) : error C2039: 'm_wndSplitter' : is not a member of 'CMDIChildWnd'<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c:\program files\microsoft visual studio\vc98\mfc\include\afxwin.h(3394) : see declaration of 'CMDIChildWnd'<BR>E:\Mdi切换视图\MainFrm.cpp(132) : error C2228: left of '.GetPane' must have class/struct/union type<BR>E:\Mdi切换视图\MainFrm.cpp(134) : error C2228: left of '.DeleteView' must have class/struct/union type<BR>E:\Mdi切换视图\MainFrm.cpp(153) : error C2228: left of '.CreateView' must have class/struct/union type<BR>E:\Mdi切换视图\MainFrm.cpp(158) : error C2039: 'm_wndSplitter' : is not a member of 'CMDIChildWnd'<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c:\program files\microsoft visual studio\vc98\mfc\include\afxwin.h(3394) : see declaration of 'CMDIChildWnd'<BR>E:\Mdi切换视图\MainFrm.cpp(158) : error C2228: left of '.RecalcLayout' must have class/struct/union type<BR>E:\Mdi切换视图\MainFrm.cpp(160) : error C2039: 'm_wndSplitter' : is not a member of 'CMDIChildWnd'<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c:\program files\microsoft visual studio\vc98\mfc\include\afxwin.h(3394) : see declaration of 'CMDIChildWnd'<BR>E:\Mdi切换视图\MainFrm.cpp(160) : error C2228: left of '.SetActivePane' must have class/struct/union type<BR>Error executing cl.exe.<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Norton AntivVirus 回复日期:2002-10-23 18:14:06
<br>内容:是在不行嘛,就用extern好了,呵呵
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:我是一个兵 回复日期:2002-10-23 18:24:18
<br>内容:哈哈,我在mainfrm.h里面也申明了一个CSplitterWnd m_wndSplitter<BR>编译没有错误,能运行.但不知是不是我要的那个效果哟.因为我后面的还没有添加.我正在试
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:我是一个兵 回复日期:2002-10-23 18:30:45
<br>内容:果然不能实现切换呀.看来这个还是不容易呀
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Norton AntivVirus 回复日期:2002-10-23 19:13:11
<br>内容:你为啥不在mainFrame中切分呢?<BR><BR>重载CreateClient函数就可以了啊
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:我是一个兵 回复日期:2002-10-23 19:29:55
<br>内容:哦,在mainFrame也能呀,我不知道.我一直在childfrm中作的,可能是先入为主吧.现在改还可以吗<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Norton AntivVirus 回复日期:2002-10-23 19:30:49
<br>内容:你得不到指针只能在mainframe中做了!<BR><BR>怎么会得不到childframe的指针呢?<BR><BR>搞不懂,呵呵
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -