CMDIChildWnd look & amp; чувствовать себя на Windows-10

У меня есть приложение MDI. Это было разработано за эти годы. На Windows-7 все выглядит родным. Когда я запускаю приложение на windows-10, обычные диалоги будут иметь вид windows-10 & Чувствовать. Но все дочерние представления по-прежнему выглядят как Windows-7 & Чувствовать.

Я пытался перейти с CMDIChildWnd на CMDIChildWndEx, но это не имело никакого значения для вида окна & чувствовать (за исключением другого стиля рамки вокруг прямоугольника клиента). Я не хочу менять все дочерние представления на панели док-станции, поскольку это сильно изменит пользовательский опыт. Я просто хочу иметь родной вид & чувствую к ребенку взгляды.

Это вообще возможно? Могу ли я легко перейти на окна докеров и настроить их так, чтобы они вели себя как обычные окна (вообще без функции стыковки, кнопки min / max / restore)?

1

Решение

По умолчанию это не сделано. Реализация по умолчанию для дочерних окон MDI просто рисует окна в старом стиле.

При просмотре исходного кода MFC Next, должно быть возможно реализовать его через OnNcPaint.

CMDIChildWndEx уже реализует OnNcPaint. И когда вы используете стиль, который возвращает TRUE в CMFCVisualManager :: GetInstance () -> IsOwnerDrawCaption (), заголовок и рамка уже нарисованы визуальным менеджером.

Все компоненты есть. Может быть, этого достаточно, чтобы m_Impl.OnNcPaint всегда вызывался. Поэтому создайте свой собственный класс окна MDI Child и заставьте систему MDI использовать его. (Смотрите ваш класс шаблона документа).

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

PS: я только что перепроверил это в реализации BCG, и я смог показать дочерние окна MDI в другом стиле.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]