| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Исчезновение кнопок на ToolBar |
| Автор: elom 7.12.2006, 19:03 |
| Доброго времени суток, уважаемые господа програмисты Ситуация выглядит следующим образом : Есть окно с панелью инструментов ToolBar и есть дерево. При выборе разных узлов дерева включаються или выключаються определенные кнопки на панели (изменяем значение Enabled). Размеры окна можно менять и при этом заданы минимальные значения размеров. Когда окно развернуто на весь экран все идет нормально , но как только мы сжимаем екран до минимума кнопки на панели инструментов на какое-то время исчезают, а потом вновь появляются, при выборе разных узлов дерева. Вопрос: почему ,ведь мы не трогаем свойство Visual ? Подскажите как это убрать. Заранее благодарен |
| Автор: elom 12.12.2006, 10:39 |
| Доброго всем времени суток Дальнейшее исследование проблемы показало что при изменении узла дерева некоторые елементы становятся невидимы и наверное идет сбой в перерисовке окна и кнопки исчезают . Если в програме принудительно задать перерисовку окна кнопки появляються. И еще одно на форме есть Spliter . Так вот если его переместить когда после того как начинаються эти ошибки то все приходит в норму. Да и еще одно при появлении проблемы с кнопками при изменении размеров окна кнопки и другие елементы начинают мигать. Подскажите как временно заблокировать перерисовку окна. Может кто-то подскажет где можно почитать про процес отображения окон , перерисовку и тому подобное и как это все реализовано в BuilderC++ 6.0 |
| Автор: pandrew 12.12.2006, 13:14 |
блокировка: SendMessage(Handle,WM_SETREDRAW,FALSE,0); надо не забыть ее снять Вся инфа есть в справке, в исходных кодах (SOURCE), MSDN и книжках. Обычно кривизна отрисовки связана с некорректными флагами дочерних окон по отношению к родительскому либо с потерей сообщений WM_PAINT из-за перегруженности потока сообщений. Достаточно грамотно воткнуть InvalidateRect. |