В приложении, над которым я работаю, 2 кнопки нарисованы на экране относительно CListBox
(назовем его myListBox
), который расположен непосредственно слева от них.
Кнопки расположены в соответствии ск значениям, полученным из myListBox.GetClientRect()
.Тем не менее, когда полосы прокрутки присутствуют в myListBox
, эти кнопки расположены неправильно, поскольку GetClientRect
не учитывает такие вещи, как полосы прокрутки.
Мне любопытно, если вкоторый я могу проверить, если список в настоящее время использует полосу прокрутки, если это имеет смысл.Таким образом, я могу применить разницу к функции, которая перемещает мои кнопки так, чтобы я мог добиться правильного размещения независимо от наличия полосы прокрутки.
Я пробовал GetWindowRect
, но я предполагаю, что окно инкапсулирует списокполе намного больше, чем само поле списка (задним числом это очевидно).
if (scrollbarinfo.rgstate[0] == (STATE_SYSTEM_INVISIBLE ||
STATE_SYSTEM_UNAVAILABLE))
{
visible = false;
}