![]() |
|
|
![]()
|
|
| JavaCraft |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 8.2.2007 Репутация: нет Всего: 1 |
В родительском окне нужен плавающий фрейм с кнопками wxMINIMIZE(=wxICONIZE), wxMAXIMIZE и восстановление, но без кнопки wxCLOSE
Исходное состояние №1 фрейма = wxICONIZE и заданные координаты X0,Y0 Двойной клик по заголовку должен перевести его из начального состяния в состояние №2 с заданным размером(во всю ширину экрана и по высоте примерно 1/5) и другими заданными координатами X1,Y1 в нижней части экрана. Состояние №3 это видоизмененное состояние №2 с большей высотой окна фрейма. Для пошагового изменения высоты во фрейме созданы специальные кнопки. Двойной клик по заголовку в состояни №2 или №3 должен перевести его в состояние №4 wxMAXIMIZE Двойной клик по заголовку в состоянии №4 должен перевести его в исходное состояние №2 или №3 в зависимости от предыдущего Клик по кнопке wxMINIMIZE должен минимизировать фрейм в состяние №1 с исходными координатами. Для этого Создаю Фрейм в родительском окне.
Проблема сразу - Фрейм создается без кнопок в заголовке, так что нет возможности его Минимизировать(Иконизировать). Кнопки появляются только вместе с wxCLOSE, в стиле обычного окна(несколько окон в панели задач) и с включенным системным меню. Всё это мне не нужно. Тогда добавил во фрейм свои кнопки, выполняющие эти функции, но они работают крайне странно. Независимо от команд, они только максимизируют окно, даже по команде Iconize(). Вот обработчики этих кнопок. Установить флаги во время исполнения также не получилось. Кнопки либо зависают, либо только максимизируют фрейм.
Туплю уже второй день. В интернете всё безоблачно, в документации ничего на этот счет не нашел. |
||||||
|
|||||||
| JavaCraft |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 8.2.2007 Репутация: нет Всего: 1 |
Еще можно добавить, что Максимизация надежно работает только при двойном клике по заголовку.
В разных попытках у меня не работала функция Maximize(), как и все прочие, но заголовок работал почти всегда. Windows 2000, Code::Blocks 8.02, wxWidgets 2.8.9 |
|||
|
||||
| t_rex |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 11.10.2006 Где: Украина, г. Запор ожье Репутация: 2 Всего: 7 |
Можешь демо-проект целиком выложить? Попробую помочь.
Это сообщение отредактировал(а) t_rex - 3.11.2008, 19:19 --------------------
Жизнь не MultiEdit. Undo не сделаешьКросс-платформенное программирование с wxWidgetsБлог о программировании для мобильных устройтсвGoogle Android для программистов и пользователей |
|||
|
||||
| JavaCraft |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 8.2.2007 Репутация: нет Всего: 1 |
Проблема была связана со стилем WXFRAME_TOOL_WINDOW и без WXSYSTEM_MENU, да еще на других платформах косяки могли вылезти.
Подумал над этими трудностями и решил всё упростить и кардинально изменить концепцию. Первоначально предполагалось, что минимизированные фреймы с заголовками являются как-бы подписями объектов(1..5) на изображении. Системные кнопки минимизации, максимизации, закрытия здесь оказываются не к месту. Однако, когда окошки раскрываются, без этих кнопок работать с ними трудно. Пришел к выводу, что правильнее будет согласится с дефолтными стилями и не использовать фреймы в качестве подписей к объектам. Создаю один фиксированный фрейм внизу экрана, с дефолным стилем и флагами запрещающими отображать его в панели задач. Разрешаю отображение и использование wxCLOSE_BOX, т.к. в новой версии это окно будет создаваться по нажатии на подпись объекта на изображдении, если оно отсутсвует, и в него будет загружаться актуальная информация. Подписи реализую не фреймами, а на основе чего-нибудь более подходящего. В общем, так и вышел из положения. Стиль фрейма
|
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |