Конференция "Media" » окно не стандартной формы. [D7, WinXP]
 
  • dima_1st (19.07.10 15:16) [0]
    Есть необходимость создать окно не стандартной формы.

    Применяю SetWindowRgn - всё ок. При таком подходе получаю рубленные (пиксельные) края формы. Хочется получить сглаженные края. На форме есть контролы, по этому использовать UpdateLayeredWindow не получается.

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

    Есть у кого нить решения, в какую сторону смотреть?
  • dima_1st (19.07.10 15:18) [1]
    Вот что примерно хочется видеть

    http://s005.radikal.ru/i209/1007/4c/33506f2a4462.png
  • 0x00FF00 © (19.07.10 20:01) [2]
    оффтоп:
    используйте Linux! =)
    тут Вам и Cairo, и Compiz, и GTK:
    http://s39.radikal.ru/i083/1007/4e/45c4f84d0471.png
    Я просто воткнул Вашу "тестовую" картинку на форму, проставил стиль, накидал кнопочек — и вуаля =)

    по теме:
    А почему не получается использовать UpdateLayeredWindow, если есть контролы? Вроде ж их нужно просто "вручную" пнуть, чтоб перерисовались (насколько не изменяет мне память)?
    **пока что сам изучить проблему не могу — разворачиваю на виртуальную машину свой старинный Windows-бэкап; возможно, минут через дцать буду готов к разбору.
  • 0x00FF00 © (19.07.10 21:05) [3]
    В общем, поскрёб я тут по сусекам Интернета (хотя по уму, это занятие нужно было бы оставить для аффтора ветки), и набрёл вот на что:
    http://www.codeproject.com/KB/dialog/SemiTranDlgWithCtrls.aspx

    Отсюда вывод: принципиально, задуманное всё же реализуемо.
    Но на практике, это выливается в терморектальный изврат %)
  • dima_1st (20.07.10 12:22) [4]

    > А почему не получается использовать UpdateLayeredWindow,
    >  если есть контролы? Вроде ж их нужно просто "вручную" пнуть,
    >  чтоб перерисовались (насколько не изменяет мне память)?
    >


    Потому, что такого рода окно не дает размещать на себе контролы. Этот стиль окна используется только для рисования. Как только пытаешся присвоить parent контрола такому окну, всё рушится.
 
Конференция "Media" » окно не стандартной формы. [D7, WinXP]
Есть новые Нет новых   [120159   +159][b:0][p:0]