📄 subject_23950.htm
字号:
<p>
序号:23950 发表者:萧马 发表日期:2002-12-08 00:35:13
<br>主题:不要意思,旧题重问,高手快来帮忙!
<br>内容:(1)目前情况是:在主框架窗口实现分割视左边为CTreeView,右边为CListView<BR> (已经实现)。<BR>(2)我想实现得是:双击左边视图得节点,促发主框架中自定义函数OnSplitterStaff<BR> 删除右边视图(CListView),显示另外一个视图(CDaoRecordView),也就是在主<BR> 框架窗口中重新分割视图。<BR> (A)我在CTreeView双击事件中得程序如下:<BR> void CLTreeView::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult) <BR> {<BR> CMainFrame* pWnd=(CMainFrame*)AfxGetApp()->GetMainWnd();<BR> pWnd->OnSplitterStaff();<BR> *pResult = 0;<BR> }<BR> (B)主框架窗口中自定义函数如下:<BR> void CMainFrame::OnSplitterStaff()<BR> {<BR> CRect rc;<BR> GetClientRect(&rc);<BR> CSize paneSizeStaff(7*rc.Width()/10,rc.Height());<BR> CCreateContext Context;<BR> Context.m_pNewViewClass=RUNTIME_CLASS(CEmployeeView);<BR> Context.m_pCurrentDoc=((CRLApp*)AfxGetApp())->m_pDoc;<BR> Context.m_pCurrentFrame=this;<BR> Context.m_pNewDocTemplate=Context.m_pCurrentDoc->GetDocTemplate();<BR> Context.m_pLastView=(CLTreeView*)m_wndSplitter.GetPane(0,0);<BR> m_wndSplitter.DeleteView(0,1);<BR> m_wndSplitter.CreateView(0,1,RUNTIME_CLASS (CEmployeeView),paneSizeStaff,&Context);<BR> CEmployeeView* eView=(CEmployeeView*)m_wndSplitter.GetPane(0,1);<BR> eView->GetParentFrame()->RecalcLayout();<BR> m_wndSplitter.RecalcLayout();<BR> eView->OnInitialUpdate();<BR> m_wndSplitter.SetActivePane(0,1);<BR><BR> }<BR>(3)编译出现如下问题:<BR> F:\RL\MainFrm.cpp(1326) : error C2248: 'OnInitialUpdate' : cannot access protected member declared in class 'CEmployeeView'<BR> 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> // ClassWizard generated virtual function overrides<BR> //{{AFX_VIRTUAL(CLTreeView)<BR> public:<BR> virtual void OnInitialUpdate();<BR> protected:<BR> virtual void OnDraw(CDC* pDC); // overridden to draw this view<BR> //}}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 <ResizableLayout.h><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 : Please use the /MD switch for _AFXDLL builds<BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -