В MDI-приложении при наличии меню в его правой части появляются кнопки управления развернутым child-окном. У меня меню убрано (тулбар only) и как следствие теряется возможность свернуть окно обратно стандартными кнопками. Через тулбар его свернуть можно (есть пункт, аналогичный стандартному подменю "Window"), но это не очень дружелюбно к пользователю. Вопрос, как тут быть? Возвращать ненужное меню?.. В некоторых приложениях в аналогичных ситуациях я видел добавляющуюся кнопку управления, похожую на "Свернуть", только в виде точки. Но вроде бы стандартной такой нет, а делать свою, учитывая разные темы и разные ОС, глупо. Я бы не отказался и от упрощенного контрола управления, не зависящего от тем, который добавляется в строку меню, при его наличии. Его можно как-то вытащить и ввинтить в тулбар или, скажем, ребар?
K>В MDI-приложении при наличии меню в его правой части появляются кнопки управления развернутым child-окном. У меня меню убрано (тулбар only) и как следствие теряется возможность свернуть окно обратно стандартными кнопками. Через тулбар его свернуть можно (есть пункт, аналогичный стандартному подменю "Window"), но это не очень дружелюбно к пользователю. Вопрос, как тут быть? Возвращать ненужное меню?.. В некоторых приложениях в аналогичных ситуациях я видел добавляющуюся кнопку управления, похожую на "Свернуть", только в виде точки. Но вроде бы стандартной такой нет, а делать свою, учитывая разные темы и разные ОС, глупо. Я бы не отказался и от упрощенного контрола управления, не зависящего от тем, который добавляется в строку меню, при его наличии. Его можно как-то вытащить и ввинтить в тулбар или, скажем, ребар?
Я пытаюсь посередине заголовка окна нарисовать хоть что-нибудь. DrawCaption не делает, кажется, ничего. DrawFrameControl хотя бы пытается что-то нарисовать, но под заголовком и поверх него рисуется тулбар. Это видно при растяжении окна. Надеюсь, мне не надо использовать богомерзкий OnNcPaint, который, кажется, заставляет перерисовывать весь заголовок.
Здравствуйте, Kernel0, Вы писали:
K>Я пытаюсь посередине заголовка окна нарисовать хоть что-нибудь. DrawCaption не делает, кажется, ничего. DrawFrameControl хотя бы пытается что-то нарисовать, но под заголовком и поверх него рисуется тулбар. Это видно при растяжении окна. Надеюсь, мне не надо использовать богомерзкий OnNcPaint, который, кажется, заставляет перерисовывать весь заголовок.
Таки придется.
OnPaint() вызывается для перерисовки _клиентской_ области окна.
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, Stanislav V. Zudin, Вы писали:
K>>Надеюсь, мне не надо использовать богомерзкий OnNcPaint, который, кажется, заставляет перерисовывать весь заголовок.
SVZ>Таки придется. SVZ>OnPaint() вызывается для перерисовки _клиентской_ области окна.
Ну то есть заголовок окна весь вручную рисовать придется?
А нельзя вытащить вот этот контрол (выделенный желтеньким), рисуя его в клиентской области? Он вроде как автоматически переводится в стиль винды, что вроде бы удобно.
Здравствуйте, Kernel0, Вы писали:
K>А нельзя вытащить вот этот контрол (выделенный желтеньким), рисуя его в клиентской области? Он вроде как автоматически переводится в стиль винды, что вроде бы удобно.
Это не контрол. Обычные рисованные кнопки. Стиль винды берется из темы (uxtheme.dll)
Вот кусок кода из WTL, который отрисовывает их: