|
listener
модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
|
Ну, зачем так далеко ходить за примерами? Стандартный Windows Media Player с его дефлотным скином тоже в качестве примера подойдет.
Окно всегда имеет прямоугольную форму. Нестандартность обеспечивается заданием особых режимов перерисовки содержимого окна. Напимер, задается определенный регион перерисовки, комбинация регионов и т.п.
После графического оформления в скин встраиваются контролы: кнопки (minimize, restore, close), а так же сайзеры, то бишь которые ловят нажатие левой кнопки мышы + драг и шлют окну мессадж навроде WM_SIZING, подменяя таким образом стандартную функцию бордера окна.
У WMP такой контрол расположени в правом нижнем углу скинованного окна.
Честно говоря, не могу сразу себе представить, как такое можно сделать стандартными средствами цинка. Думается, что вряд ли.
Можно попробовать привязать драг флэш-мувиклипа в ролике к mdm.System.SendMessage(), предварительно получив хэндл окна проигрывателя. Но, что-то сомневаюсь.. хватит ли мощностей цинка, что бы обеспечить отсылку нужных сообщений, цинк не все типы данных поддерживат из WinAPI, не говоря уже об указателях и ссылках, максимум - число переслать можно.
Ну, или как вариант скиновать окно самому по приведенной выше схеме, что, конечно, более трудоемкий процесс.
Но, по-любому, цинк не имеет нужного функционала в своем АПИ.
|