Прокрутка диалогового окна Win32 с дочерними полями редактирования

#c #winapi #dialog #scrollable

#c #winapi #диалоговое окно #прокручиваемый

Вопрос:

У меня есть диалоговое окно Win32 Windows на C с несколькими элементами. В настоящее время внизу находится расширенный элемент управления редактированием, а в правом верхнем углу — древовидный список, созданный в редакторе ресурсов. Я программно добавил к нему другие поля редактирования и флажки в пространстве вверху слева. Однако, в зависимости от контекста, иногда не хватает места. Итак, я хочу создать в диалоговом окне какое-то «окно» с полосами прокрутки, в которое я прикрепляю все свои элементы управления редактированием и флажки, чтобы оно прокручивалось при необходимости и, конечно, вырезало, идеально в пикселях, те, которые находятся за пределами диапазона полос прокрутки.

Я попытался создать родительское окно «редактировать» с полосой прокрутки и добавить в него все дочерние окна редактирования и флажки, но у него проблемы с отрисовкой, он не позволяет мне нажимать на мои элементы управления редактированием и не обрезается. Очевидно, что это не должно быть сделано именно так.

Итак, возможно ли это? Должен ли я сам обрабатывать полосы прокрутки? Или есть какая-то волшебная настройка Windows, которая позволит это …?

Спасибо

Шон Саузерн

Комментарии:

1. Вероятно, будет проще самостоятельно обрабатывать полосы прокрутки и настраивать положения элементов управления в зависимости от положения прокрутки.

2. Да, я нашел образец кода и создал новый «класс» с собственным dialogproc и прикрепил к нему все мои кнопки. Он отлично обрезается, и я сам обрабатываю полосы прокрутки, затем перемещаю каждую из кнопок на величину прокрутки. Не уверен, смогу ли я добавить один элемент в новый класс «pane», затем добавить туда свои кнопки, а затем переместить этот элемент, но, похоже, это работает, хотя я все еще получаю проблемы с перерисовкой / мерцанием…