альфа-смешанный элемент управления в многослойном окне в C # - PullRequest
0 голосов
/ 16 февраля 2011

У меня есть многоуровневая форма с расширенным набором стилей WS_EX_LAYERED.я создал дочерний элемент управления «РЕДАКТИРОВАТЬ», используя функцию API CreateWindowEx (...);элемент управления находится там, но не окрашен, и на форме ничего не отображается.

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

Пожалуйста, примите во внимание, что непрозрачность формы установлена ​​на 255, а фон закрашивается прозрачным изображением с помощью API UpdateLayeredWindow (...).

при наведении курсора мыши на элемент управления «Редактировать» появляется текстовый курсор, и я могу скопировать текст внутри него.

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

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

Должен ли он работать, если я отправлю WM_PRINTCLIENT для этого элемента управления?в таком случае DC должен быть многоуровневой родительской формой?Я также пробовал это, но я не мог заставить его работать.

нормальная форма: http://img580.imageshack.us/i/formy.png/

многоуровневая форма: http://img6.imageshack.us/i/layeredform.png/

мой вопрос, как мнезаставить мой элемент управления редактирования принимать альфа-смешанную пользовательскую краску?Как нарисовать альфа-смешанный элемент управления на многослойной форме?

1 Ответ

0 голосов
/ 23 февраля 2011

В конце концов я нашел способ сделать это,

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

Я до сих пор не знаю, является ли это лучшим методом, хотя

метод работает хорошо, но мне нужно его усовершенствовать и добавитьбольше взаимодействия + альфа-смешанные элементы управления .. с другой стороны, есть функциональность

вот она: http://img84.imageshack.us/img84/3172/73845647.png

...