如何知道CWnd滚动条是否可见
How to know if a CWnd scrollbar is visible?
我有一个显示图像的自定义控件。当图像超过可显示的大小时,它会显示滚动条。出于某种原因,我想知道滚动条是水平还是垂直显示。在CWnd
类中找不到任何直接函数。
我找到了GetScrollBarInfo
,但没能查到。这是代码:
SCROLLBARIINFO stHSBInfo;
GetScrollBarInfo( this->GetSafeHwnd(), OBJID_HSCROLL, &stHSBInfo );
if( !( STATE_SYSTEM_INVISIBLE &stHSBInfo.rgstate[0] )) // Always true
{
// Code
}
请帮忙!
使用GetSystemMetrics获取系统滚动条宽度的大小。在GetWindowRect和GetClientRect之间比较自定义控件的大小。如果差异大于滚动条宽度的大小,则是可见的。
文档指出;在调用GetScrollBarInfo
函数之前,请将cbSize
设置为sizeof(SCROLLBARINFO)
"
您的代码应该更新为:
SCROLLBARIINFO stHSBInfo;
stHSBInfo.cbSize = sizeof(SCROLLBARINFO);
GetScrollBarInfo( this->GetSafeHwnd(), OBJID_HSCROLL, &stHSBInfo );
if( !( STATE_SYSTEM_INVISIBLE &stHSBInfo.rgstate[0] )) // Always true
{
// Code
}
相关文章:
- QScrollArea:由垂直滚动条引起的水平滚动条
- 跟踪滚动条上的鼠标事件
- 如何在不使用滚动条的情况下使视图更改
- 通过水平滚动条更改标签
- Qt:无法直接为带有子项的小部件添加滚动条
- OnVScroll : 从 CSpinButtonCtrl 或垂直滚动条调用?
- win32 滚动条在 C/C++ 程序中不起作用
- 外观 MFC 滚动条
- 停止 QTextCursor::insertText() 修改 QTextDocument 滚动条范围
- 如何在wxRadioBox中添加滚动条
- QPainter的QWidget滚动条
- 将水平滚动条添加到控制台
- QT - 如何创建具有长 int(而不是 int)步长的滚动条?
- QListWidget 水平滚动条会导致选择消失在视野之外
- 有没有办法有条件地检查窗口是否正在使用滚动条
- 如何检查编辑控件的滚动条是否位于底部
- 如何知道CWnd滚动条是否可见
- 如何使用他的HWND检查窗口是否有可见的滚动条
- 在c++中是否有一种方法可以在不使用windows api的情况下制作带有按钮和滚动条的自定义gui ?
- 如何知道水平滚动条是否显示在QPlainTextEdit继承的类中