【发布时间】:2019-10-31 11:15:39
【问题描述】:
在我正在开发的应用程序中,屏幕上绘制了两个按钮,相对于位于其左侧的CListBox(我们称之为myListBox)。
根据从myListBox.GetClientRect() 检索到的值放置按钮。但是,当myListBox 中存在滚动条时,这些按钮的位置会不正确,因为GetClientRect 没有考虑滚动条等内容。
我很好奇是否有一种条件方法可以检查列表框当前是否正在使用滚动条,如果这有意义的话。这样,我可以将差异应用到移动按钮的功能上,这样无论是否存在滚动条,我都可以实现正确的放置。
我试过GetWindowRect,但我认为封装列表框的窗口比列表框本身大得多(事后看来这很明显)。
if (scrollbarinfo.rgstate[0] == (STATE_SYSTEM_INVISIBLE ||
STATE_SYSTEM_UNAVAILABLE))
{
visible = false;
}
【问题讨论】:
-
GetWindowRect + MapWindowPoints 是你的答案
标签: c++ windows visual-studio mfc