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

📄 subject_56285.htm

📁 vc
💻 HTM
字号:
<p>
序号:56285 发表者:翟兆睿 发表日期:2003-10-16 16:29:14
<br>主题:焦点
<br>内容:我的SDI工程界面上分走有两个类,如何判断当前那个子窗体是焦点呢?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:浪际天涯 回复日期:2003-10-16 16:34:37
<br>内容:引用楼主的话:<BR>我的SDI工程界面上分走有两个类,如何判断当前那个子窗体是焦点呢? <BR><BR>我不太明白你所说的分走有两个类是什么概念,两个类是什么样的类?你的意思是切分了窗口后,MainFrame中有两个VIEW吗?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:翟兆睿 回复日期:2003-10-16 16:36:36
<br>内容:是的,我创建工程的时候,选择Windows风格,左边是CTreeView,右边是CListView,我现在想判断那个View获得了焦点。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:浪际天涯 回复日期:2003-10-16 16:40:39
<br>内容:((CMainFrame *)((CMyApp *)::AfxGetApp())-&gt;m_pMainFrame)-&gt;GetActiveView();
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:翟兆睿 回复日期:2003-10-16 16:49:36
<br>内容:返回的是View类的指针吗?那怎么样进行判断呢?我才疏学浅,希望大侠指点。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:浪际天涯 回复日期:2003-10-16 17:15:14
<br>内容:返回值是CView *,你的两个VIEW都是从CView的派生的类,直接可以用CView的指针调用派生类的函数,不需要判断了<BR>CView *pView=((CMainFrame *)((CMyApp *)::AfxGetApp())-&gt;m_pMainFrame)-&gt;GetActiveView(); //类似于CView *pView=new CTreeView;<BR>比如当前活动的VIEW是CTreeView,那么pView-&gt;Func(),调用这个Func时,其实它真正的this指针已经指向了CTreeView,所以调用的时候调用的是CTreeView的Func,而不是CView的.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:翟兆睿 回复日期:2003-10-16 17:23:00
<br>内容:我的想法是这样,当CTreeView获得焦点的时候,某些菜单是不可用的,当CListView获得焦点的时候是可用的。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:翟兆睿 回复日期:2003-10-16 17:24:48
<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>
回复者:浪际天涯 回复日期:2003-10-16 17:34:51
<br>内容:那可以这样呀,当CTreeView获得焦点时要求不可用的那些菜单的实现函数,加到CListView中实现,而CListView获得焦点时要求不可用的菜单放到CTreeView中,就好了,要判断的话也可以,但是比较麻烦<BR>比如,可以在两个View中加入同样的函数Func,函数对同一个全局的或MainFrame的变量赋予不同的值,<BR>调用时直接pView-&gt;Func(),这样就可以根据变量的值来判断哪个是ActiveView
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:翟兆睿 回复日期:2003-10-16 17:41:17
<br>内容:我是说当CTreeView获得焦点的时候,某些菜单变为灰的。不允许使用,我刚才没说明白
<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>回复者:浪际天涯 回复日期:2003-10-16 17:45:31
<br>内容:我明白你的意思,我刚说过了呀<BR>当CTreeView获得焦点时,要求不可用的那些菜单的实现函数,映射到CListView中实现<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>
回复者:翟兆睿 回复日期:2003-10-16 17:51:32
<br>内容:不要求实现,而是当CTreeView获得焦点的时候,原来可用的菜单项变为灰的,当CListView获得焦点的时候,变为可用状态,就是要改变菜单的“可用”/“不可用”两个状态
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:翟兆睿 回复日期:2003-10-17 09:14:50
<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>
回复者:韩广良 回复日期:2003-10-17 09:43:07
<br>内容:“当CTreeView获得焦点时要求不可用的那些菜单的实现函数,加到CListView中实现,而CListView获得焦点时要求不可用的菜单放到CTreeView中,就好了,”,8楼这句话是对的,确实能解决你菜单可用不可用的问题。<BR>要判断当前那个子窗体是焦点,用RuntimeClass,如下:<BR>if(((CMainFrame*)AfxGetMainWnd())-&gt;GetActiveView-&gt;GetRuntimeClass()==RUNTIME_CLASS(CTreeView))<BR>//焦点在CTreeView上<BR>else<BR>//焦点在CListView上
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:翟兆睿 回复日期:2003-10-17 09:50:05
<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>
回复者:浪际天涯 回复日期:2003-10-17 11:49:42
<br>内容:可以在点击菜单标题时判断CMainFrame::OnCmdMsg
<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 + -