Перерисовка на панели инструментов? Альтернативная идея?

Основная цель состоит в том, чтобы нарисовать вкладку в области рисования панели инструментов приложения для ноутбука или вкладки, чтобы использовать пространство выше, а не ниже панели инструментов.

Мы используем фреймворк WxWidgets, C++/C. Я огляделся, но не смог найти решение или если кто-то сделал аналогичный подход с вкладкой рисования на самом деле внутри самой панели инструментов.

Я прочитал некоторые статьи Microsoft MSDN, и они рекомендуют не рисовать элементы управления поверх элементов управления.

Сегодня я сделал несколько тестов и думаю, что нашел решение. Мое решение состоит в том, чтобы нарисовать окно, как обычно, но записную книжку справа в дочернем окне, размер и положение которого динамически изменяются так, чтобы его вкладка накладывалась поверх панели инструментов, чтобы максимально эффективно использовать область. Мне пришлось бы иметь дело с оконными сообщениями о фокусе и потере фокуса, но это самый элегантный способ, который я могу придумать для достижения задачи.

Любая идея, которую вы можете порекомендовать, или проблема, с которой я могу столкнуться, следуя этому подходу.

макет


person Chad    schedule 04.04.2012    source источник


Ответы (1)


Я был бы обеспокоен использованием таких перекрывающихся виджетов. Хотя визуально это может выглядеть не совсем так, я бы посоветовал взглянуть на wxToolBook, который помещает вкладки в панель инструментов и решит вашу проблему, вы можете использовать метод GetToolBar для вставки собственных элементов панели инструментов.

Если это было недостаточно визуально близко к тому, чего вы хотите достичь, я бы предложил получить новый элемент управления из wxBookCtrlBase, а затем создать элемент управления вкладками с пользовательскими нарисованными вкладками, которые можно добавить на панель инструментов с помощью wxToolBar::AddControl.

person SteveL    schedule 11.04.2012