如何知道CWnd滚动条是否可见?

时间:2012-07-26 12:26:58

标签: c++ mfc

我有一个显示图像的自定义控件。当图像超出可显示尺寸时,它会显示滚动条。出于某种原因,我想知道是否显示水平或垂直滚动​​条。我无法在CWnd类中找到任何直接函数。

我发现GetScrollBarInfo但没有运气检查。这是代码:

SCROLLBARIINFO stHSBInfo;
GetScrollBarInfo( this->GetSafeHwnd(), OBJID_HSCROLL, &stHSBInfo );
if(  !( STATE_SYSTEM_INVISIBLE &stHSBInfo.rgstate[0] )) // Always true
{
    // Code
}

请帮忙!

1 个答案:

答案 0 :(得分:0)

使用GetSystemMetrics获取系统滚动条宽度的大小。 比较GetWindowRect和GetClientRect之间的自定义控件的大小。 如果差异大于滚动条宽度的大小,则可见。