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

📄 subject_23950.htm

📁 一些关于vc的问答
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<p>
序号:23950 发表者:萧马 发表日期:2002-12-08 00:35:13
<br>主题:不要意思,旧题重问,高手快来帮忙!
<br>内容:(1)目前情况是:在主框架窗口实现分割视左边为CTreeView,右边为CListView<BR>&nbsp;&nbsp;&nbsp;&nbsp;(已经实现)。<BR>(2)我想实现得是:双击左边视图得节点,促发主框架中自定义函数OnSplitterStaff<BR>&nbsp;&nbsp;&nbsp;&nbsp; 删除右边视图(CListView),显示另外一个视图(CDaoRecordView),也就是在主<BR>&nbsp;&nbsp;&nbsp;&nbsp; 框架窗口中重新分割视图。<BR>&nbsp;&nbsp;&nbsp;&nbsp; (A)我在CTreeView双击事件中得程序如下:<BR>&nbsp;&nbsp;&nbsp;&nbsp; void CLTreeView::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult) <BR>&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;CMainFrame* pWnd=(CMainFrame*)AfxGetApp()-&gt;GetMainWnd();<BR>&nbsp;&nbsp;&nbsp;&nbsp;pWnd-&gt;OnSplitterStaff();<BR>&nbsp;&nbsp;&nbsp;&nbsp;*pResult = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp; (B)主框架窗口中自定义函数如下:<BR>&nbsp;&nbsp;&nbsp;&nbsp; void CMainFrame::OnSplitterStaff()<BR>&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;CRect rc;<BR>&nbsp;&nbsp;&nbsp;&nbsp;GetClientRect(&amp;rc);<BR>&nbsp;&nbsp;&nbsp;&nbsp;CSize paneSizeStaff(7*rc.Width()/10,rc.Height());<BR>&nbsp;&nbsp;&nbsp;&nbsp;CCreateContext Context;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Context.m_pNewViewClass=RUNTIME_CLASS(CEmployeeView);<BR>&nbsp;&nbsp;&nbsp;&nbsp;Context.m_pCurrentDoc=((CRLApp*)AfxGetApp())-&gt;m_pDoc;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Context.m_pCurrentFrame=this;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Context.m_pNewDocTemplate=Context.m_pCurrentDoc-&gt;GetDocTemplate();<BR>&nbsp;&nbsp;&nbsp;&nbsp;Context.m_pLastView=(CLTreeView*)m_wndSplitter.GetPane(0,0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_wndSplitter.DeleteView(0,1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_wndSplitter.CreateView(0,1,RUNTIME_CLASS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(CEmployeeView),paneSizeStaff,&amp;Context);<BR>&nbsp;&nbsp;&nbsp;&nbsp;CEmployeeView* eView=(CEmployeeView*)m_wndSplitter.GetPane(0,1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;eView-&gt;GetParentFrame()-&gt;RecalcLayout();<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_wndSplitter.RecalcLayout();<BR>&nbsp;&nbsp;&nbsp;&nbsp;eView-&gt;OnInitialUpdate();<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_wndSplitter.SetActivePane(0,1);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>(3)编译出现如下问题:<BR>&nbsp;&nbsp; F:\RL\MainFrm.cpp(1326) : error C2248: 'OnInitialUpdate' : cannot access&nbsp;&nbsp;&nbsp;&nbsp;protected member declared in class 'CEmployeeView'<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;F:\RL\EmployeeView.h(44) : see declaration of 'OnInitialUpdate'<BR>Error executing cl.exe.<BR>请问这个问题如何解决,是否可以这么实现?谢谢
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:tjhe 回复日期:2002-12-08 00:45:25
<br>内容:在CEmployeeView内定义文件EmployeeView.h中将OnInitialUpdate函数改为public。
<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-12-08 00:49:10
<br>内容:OnInitialUpdate是重载的Virtual函数,这个怎么改?改了对程序有没有什么影响?
<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-12-08 00:50:33
<br>内容:再说,在EmployeeView.h中它本来就是Public:<BR>// Overrides<BR>&nbsp;&nbsp;&nbsp;&nbsp;// ClassWizard generated virtual function overrides<BR>&nbsp;&nbsp;&nbsp;&nbsp;//{{AFX_VIRTUAL(CLTreeView)<BR>&nbsp;&nbsp;&nbsp;&nbsp;public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;virtual void OnInitialUpdate();<BR>&nbsp;&nbsp;&nbsp;&nbsp;protected:<BR>&nbsp;&nbsp;&nbsp;&nbsp;virtual void OnDraw(CDC* pDC);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// overridden to draw this view<BR>&nbsp;&nbsp;&nbsp;&nbsp;//}}AFX_VIRTUAL<BR><BR>// Implementation
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:tjhe 回复日期:2002-12-08 00:55:07
<br>内容:你列出的类好像不是CEmployeeView类的定义。怎么像是CLTreeView??
<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-12-08 01:00:53
<br>内容:抱歉,呵呵。<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>
回复者:tjhe 回复日期:2002-12-08 01:10:21
<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-12-08 01:15:27
<br>内容:上次不小心从Build中的Configurations中将Debug删除、、、<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>
回复者:tjhe 回复日期:2002-12-08 01:40:57
<br>内容:从Build中的Configurations中重新添加Debug;然后再Project中的Settings...中进行设置:主要是1.General中的输出目录、<BR>2.C/C++中的General栏的优化项选Disable(Debug),预定义NDEBUG改为_DEBUG<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>
回复者:tjhe 回复日期:2002-12-08 01:45:37
<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-12-08 02:02:53
<br>内容:不好意思有出现了问题<BR>由于我的工程中添加了另外一个工程<BR>按照你的步骤修改后出现了如下错误:<BR><BR>f:\rl\resizabledialog.h(24) : fatal error C1083: Cannot open include file: 'ResizableLayout.h': No such file or directory<BR>MainFrm.cpp<BR>f:\rl\resizabledialog.h(24) : fatal error C1083: Cannot open include file: 'ResizableLayout.h': No such file or directory<BR>RL.cpp<BR>f:\rl\resizabledialog.h(24) : fatal error C1083: Cannot open include file: 'ResizableLayout.h': No such file or directory<BR>RLContractDlg.cpp<BR>f:\rl\resizabledialog.h(24) : fatal error C1083: Cannot open include file: 'ResizableLayout.h': No such file or directory<BR>SelectDepartment.cpp<BR>f:\rl\resizabledialog.h(24) : fatal error C1083: Cannot open include file: 'ResizableLayout.h': No such file or directory<BR>StaffDlg.cpp<BR>f:\rl\resizabledialog.h(24) : fatal error C1083: Cannot open include file: 'ResizableLayout.h': No such file or directory<BR>Generating Code...<BR>Error executing cl.exe.<BR><BR>RL.exe - 6 error(s), 0 warning(s)<BR>可是在Head Files中明明有这个文件,而且从Project中添加也不行】<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>
回复者:tjhe 回复日期:2002-12-08 02:10:36
<br>内容:'ResizableLayout.h'是不是自定义的头文件? <BR>#include &lt;ResizableLayout.h&gt;<BR><BR>#include "ResizableLayout.h"<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-12-08 02:17:01
<br>内容:我又重新做了修改出现如下错误:<BR>c:\program files\microsoft visual studio\vc98\mfc\include\afxver_.h(130) : fatal error C1189: #error :&nbsp;&nbsp;Please use the /MD switch for _AFXDLL builds<BR>

⌨️ 快捷键说明

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