В моих приложениях я хочу использовать общие элементы управления (например, EDIT, BUTTON COMBOBOXEX32) для не клиентской области, которая расширяется с помощью DwmExtendFrameIntoClientArea.Весь процесс расширения работает хорошо, но когда я использую Windows Common Controls в этой расширенной области, я получаю неприятные эффекты при рисовании текста.Прочитав некоторое время об этом симптоме, я обнаружил, что с помощью GDI + текст рисуется составным способом, поэтому метки можно рисовать с помощью GDI +.
На рисунке ниже показан образец.Вы увидите кнопку разделения, созданную
BStyle = BS_PUSHBUTTON Or WS_CHILD Or WS_VISIBLE Or &HC&
.hwnd = CreateWindowEX(0, "BUTTON", vbNullString, BStyle, _
ScaleLeft, ScaleTop, ScaleWidth, ScaleHeight, _
UserControl.hwnd, 0&, App.hInstance, _
ByVal 0&)
, РЕДАКТИРОВАТЬ, также созданную CreateWindowEx, и кнопку извлечения пользователя, использующую тематику, GDI + метку и изображение.
Элементы управления, созданные CreateWindowEx, очевидно, нарисованы безподдержка GDI +, поэтому весь контент не правильно составлен.Это действительно ужасно, потому что введенный текст не читается.Создавать редакторы самостоятельно - это большая вещь, поэтому я бы предпочел поддержку Windows здесь.
Эта проблема возникает в Win7-Win10, даже если в Win8, Win10 предпочтительнее использовать глянцевый фон Win7 или непрозрачные стили.
Мой вопрос: есть ли в манифесте какие-либо настройки, доступные для настройки, для правильного рисования общих элементов управления, или существуют расширенные стили для его поддержки?Почему Windows не поддерживает его изначально?
Снимок экрана общих элементов управления в области ЧПУ