Здравствуйте, NikeByNike, Вы писали:
NBN>Здравствуйте, Corvin, Вы писали:
C>>Подскажите, плз, как сделать окно произвольной формы?
NBN>Два пути.
NBN>1. Использовать Regions, см. HRGN, CRgn NBN>2. Layer, см. SetLayeredWindowAttributes
Спасибо
Моя задача — сделать главное окно приложения в форме некоего битмапа — изображения открытой книги.
Я так понимаю, что с MFC-шными окнами использовать SetLayeredWindowAttributes будет непросто. Нашел примеры использования CRgn, но не пойму, как сделать так, чтобы регион имел форму, определенную битмапом (с ключом, какой цвет считать прозрачным). Так можно сделать?
Здравствуйте, Corvin, Вы писали:
C>Я так понимаю, что с MFC-шными окнами использовать SetLayeredWindowAttributes будет непросто. Нашел примеры использования CRgn, но не пойму, как сделать так, чтобы регион имел форму, определенную битмапом (с ключом, какой цвет считать прозрачным). Так можно сделать?
Здравствуйте, Corvin, Вы писали:
C>Моя задача — сделать главное окно приложения в форме некоего битмапа — изображения открытой книги. C>Я так понимаю, что с MFC-шными окнами использовать SetLayeredWindowAttributes будет непросто.
Я использовал лейеры с WTL — без проблем. Думаю, что с MFC тоже проблем не будет. Делаешь окно без бордюра, без заголовка и со стилем WS_EX_LAYERED. В паинте заливаешь все ненужные части окна специфичным цветом и указываешь его в SetLayeredWindowAttributes. Всё.
C>Нашел примеры использования CRgn, но не пойму, как сделать так, чтобы регион имел форму, определенную битмапом (с ключом, какой цвет считать прозрачным). Так можно сделать?
Можно сделать, скомбинировать регионы, но по сравнению с лейрами мне данный способ кажется извращением. С другой стороны — регионы придётся использовать если тебе нужна поддержка старых или мобильных платформ. Код тебе уже дали.
Доброе время суток всем. У кого-нибудь есть документация, примеры, хелпы по созданию используя MFC собственных диалоговых окон (не прямоугольных, а начиная с формирования формы окна на основе готового рисунка, заканчивая размещением стандартных кнопок (закрытия, свёртывания ...)), тот же самый вопрос и по самим bottonam? Перехожу на Visual c Buildera, так что в MFC новичёк.