MFC中静态拆分窗口后,每个窗口的滚动条不支持鼠标滚动了,只能拖拉了,怎么回事,求解决啊!!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC中静态拆分窗口后,每个窗口的滚动条不支持鼠标滚动了,只能拖拉了,怎么回事,求解决啊!!!相关的知识,希望对你有一定的参考价值。

怎么才能在静态拆分窗口的情况下,支持鼠标滚动!

参考技术A 添加鼠标滚动事件响应函数处理鼠标滚动事件.追问

能不能具体点!

MFC:将 CSplitterWnd 应用到我的 CChildFrame 后,主窗口标题不再更新

【中文标题】MFC:将 CSplitterWnd 应用到我的 CChildFrame 后,主窗口标题不再更新【英文标题】:MFC: After applying a CSplitterWnd to my CChildFrame the main window title isn't updated any more 【发布时间】:2021-02-13 14:08:42 【问题描述】:

仍然使用 VS 2008,我在 CChildFrame 中拆分了 MDI 视图类,以便使用静态拆分器 (source code) 在旧 CScrollView 旁边的导航侧边栏 (CListCtrl)。然而,这暗示了两个副作用:除了鼠标滚轮不再工作 (where I found a workaround for),应用程序窗口不再更新 SetPathName()。我需要做些什么来桥接拆分器,以便框架根据我的CDocument 再次更新应用程序窗口?

【问题讨论】:

你在哪里调用 SetPahName()?并且必须设置样式 FWS_ADDTOTITLE。 FWS_ADDTOTITLE 在框架中设置。在我应用拆分器之前,它起作用了,因为 FWS_ADDTOTITLE 在 MDI 应用程序中是默认设置。我试图用它调用 CSplitterWnd::CreateStatic() ,但它没有改变任何东西。 SetPahName() 在我的 CDocument 类中被调用,例如在 OnNewDocument() 或 OnFileSaveAs() 中。 在您的 MainFrame 类上,只需在其中放置一个方法 void CMyFrame::OnUpdateFrameTitle(BOOL bAddToTitle) __super::OnUpdateFrameTitle(bAddToTitle); 和一个断点,看看会发生什么。如果需要,您必须提供自己的覆盖,而不是调用 __super 实现。 经过漫长的对分搜索后,在注释掉 FWS_ADDTOTITLE 样式后,我得到了窗口标题恢复正常,我一定是在 TomTom 的评论后添加了 PreCreateWindow()。我无法恢复我所做的所有其他更改。其中之一肯定解决了文档标题问题…… 【参考方案1】:

在你的 MainFrame 类上,放一个方法

void CMyFrame::OnUpdateFrameTitle(BOOL bAddToTitle)

    __super::OnUpdateFrameTitle(bAddToTitle);

在那里设置一个断点,看看会发生什么。如果需要,您必须提供自己的覆盖,而不是调用 __super 实现。

【讨论】:

CMDIFrameWnd::OnUpdateFrameTitle 中查询GetActiveDocument() 时,它总是返回NULL。因此,用两个CView 派生类替换我的CScrollView 以某种方式破坏了文档和框架的连接。这是因为CFrameWnd::GetActiveView() 从未显示过活动视图。我还在CChildFrame::OnCreateClient 中添加了SetActivePane()SetActiveView(),但没有任何改变。 PS:CMainFrame::OnUpdateFrameTitle() 在添加覆盖后被多次调用。窗口标题中仍然只显示应用程序名称,没有文档名称。 现在您必须深入了解调用堆栈以了解更多详细信息。 我尽可能地挖掘。问题是:我必须在哪里重写什么函数来设置活动文档,以便框架可以再次找到它,而无需阅读完整的 MFC 源代码? CFrameWnd::GetActiveDocument 函数上设置断点:i.imgur.com/WaLX09m.png 以查看返回的内容。

以上是关于MFC中静态拆分窗口后,每个窗口的滚动条不支持鼠标滚动了,只能拖拉了,怎么回事,求解决啊!!!的主要内容,如果未能解决你的问题,请参考以下文章

MFC中拆分窗口遇到的问题,急需高手帮助!!!!

MFC:将 CSplitterWnd 应用到我的 CChildFrame 后,主窗口标题不再更新

在MFC中拆分窗口后,如何设置子窗口的样式?比如我不想让其中一个子窗口是凹的。

用鼠标移动窗口时,移动上下滚动条时总是感觉像水波一样挪动是怎么回事,

MFC 拆分器窗口中的多个文档/视图

C++ 如何判断鼠标有没有在窗口上? 纯API 不是MFC