Окно произвольной формы
От: Corvin Украина  
Дата: 07.12.07 19:51
Оценка:
Подскажите, плз, как сделать окно произвольной формы?
Re: Окно произвольной формы
От: NikeByNike Россия  
Дата: 07.12.07 20:11
Оценка: 2 (1) +1
Здравствуйте, Corvin, Вы писали:

C>Подскажите, плз, как сделать окно произвольной формы?


Два пути.

1. Использовать Regions, см. HRGN, CRgn
2. Layer, см. SetLayeredWindowAttributes
Нужно разобрать угил.
Re[2]: Окно произвольной формы
От: Corvin Украина  
Дата: 07.12.07 20:18
Оценка:
Здравствуйте, NikeByNike, Вы писали:

NBN>Здравствуйте, Corvin, Вы писали:


C>>Подскажите, плз, как сделать окно произвольной формы?


NBN>Два пути.


NBN>1. Использовать Regions, см. HRGN, CRgn

NBN>2. Layer, см. SetLayeredWindowAttributes

Спасибо

Моя задача — сделать главное окно приложения в форме некоего битмапа — изображения открытой книги.
Я так понимаю, что с MFC-шными окнами использовать SetLayeredWindowAttributes будет непросто. Нашел примеры использования CRgn, но не пойму, как сделать так, чтобы регион имел форму, определенную битмапом (с ключом, какой цвет считать прозрачным). Так можно сделать?
Re[3]: Окно произвольной формы
От: algol Россия about:blank
Дата: 07.12.07 23:12
Оценка:
Здравствуйте, Corvin, Вы писали:

C>Я так понимаю, что с MFC-шными окнами использовать SetLayeredWindowAttributes будет непросто. Нашел примеры использования CRgn, но не пойму, как сделать так, чтобы регион имел форму, определенную битмапом (с ключом, какой цвет считать прозрачным). Так можно сделать?


На codeproject можно найти кучу примеров. Например
Fast region creation on WinCE/PocketPC
CContourBitmap — A Region Creator
MFC Transparent CDialog Demo
Re[3]: Окно произвольной формы
От: NikeByNike Россия  
Дата: 07.12.07 23:39
Оценка:
Здравствуйте, Corvin, Вы писали:

C>Моя задача — сделать главное окно приложения в форме некоего битмапа — изображения открытой книги.

C>Я так понимаю, что с MFC-шными окнами использовать SetLayeredWindowAttributes будет непросто.
Я использовал лейеры с WTL — без проблем. Думаю, что с MFC тоже проблем не будет. Делаешь окно без бордюра, без заголовка и со стилем WS_EX_LAYERED. В паинте заливаешь все ненужные части окна специфичным цветом и указываешь его в SetLayeredWindowAttributes. Всё.

C>Нашел примеры использования CRgn, но не пойму, как сделать так, чтобы регион имел форму, определенную битмапом (с ключом, какой цвет считать прозрачным). Так можно сделать?

Можно сделать, скомбинировать регионы, но по сравнению с лейрами мне данный способ кажется извращением. С другой стороны — регионы придётся использовать если тебе нужна поддержка старых или мобильных платформ. Код тебе уже дали.
Нужно разобрать угил.
Re[4]: Окно произвольной формы
От: Patjomkin  
Дата: 21.04.08 00:20
Оценка:
Доброе время суток всем. У кого-нибудь есть документация, примеры, хелпы по созданию используя MFC собственных диалоговых окон (не прямоугольных, а начиная с формирования формы окна на основе готового рисунка, заканчивая размещением стандартных кнопок (закрытия, свёртывания ...)), тот же самый вопрос и по самим bottonam? Перехожу на Visual c Buildera, так что в MFC новичёк.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.