【问题标题】:scrollbars of a CScrollView in a CDockablePane are disabledCDockablePane 中 CScrollView 的滚动条被禁用
【发布时间】:2014-07-18 11:32:38
【问题描述】:

我设计了一个工具箱控件。它位于 CDockablePane 对象中。由于其中的工具可能需要滚动,因此我创建了一个 CScrollView 作为窗格的子项,并将工具作为子项插入其中。根据窗格大小,CScrollView 对象的滚动条会正确显示,但单击它们不会滚动视图。似乎他们被禁用了。当我在创建 CScrollView 时使用 SS_NOTIFY 样式时,CScrollView 对象会接收鼠标点击,但是当我不使用该样式时,它不会。但似乎视图控件内的滚动条没有收到点击。当鼠标悬停在它们上时,滚动条中不会出现视觉效果。滚动条似乎被禁用,而我没有创建或操作它们。 怎么了? 鼠标滚轮工作。单击滚动条是由滚动视图接收的,而不是由滚动条接收的。在处理程序内部,我编写了以下代码:

CScrollBar *pScroll = GetScrollBarCtrl(SB_VERT);
if (pScroll->GetSafeHwnd())
{
    ...

如果不是真的。这意味着滚动视图没有滚动条,但如果有,它是如何显示的?! 任何想法? ... 由于我没有得到答案,我将用一个示例代码来澄清我的问题: https://dl.dropboxusercontent.com/u/4829119/930501%20-%20t3.zip 在这个示例中,如何像使用其他视图(如类视图和文件视图)一样滚动视图? 示例代码截图: https://www.dropbox.com/s/7pu5chpyj9hqeal/Screenshot%202014-07-23%2003.40.26.png

【问题讨论】:

    标签: mfc scrollbar dockable-windows ccscrollview


    【解决方案1】:

    您是否通过调用 SetScrollSizes 进行了初始化?仅当 sizeTotal 大于视图窗口大小时,才会启用滚动条。

    【讨论】:

    • 是的,我做到了。确实滚动条以适当的拇指大小正确显示。但它们似乎已禁用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-18
    • 2017-02-10
    • 1970-01-01
    • 2012-06-02
    • 2017-07-22
    • 1970-01-01
    相关资源
    最近更新 更多