Re: Самопрорисовывающееся окно
От: OlegO Россия http://www.mediachase.ru
Дата: 28.11.01 08:56
Оценка:
Здравствуйте _coder, Вы писали:

C>Объясните толково (лучше на примере) как сделать самопрорисовывающееся окно (рамка, заголовок, кнопки системного меню

C> — по типу как в WinAmp'е)

Перекрывать сообщения:
-----------------------------
В первую очередь:
WM_PAINT
WM_ERASEBKGND
WM_NCPAINT
-----------------------------
Дополнително:
WM_NCACTIVATE
WM_NCCALCSIZE
(Желательно перекрыть все методы для работы с не клиентской областью WM_NC
и в них все делать самому, не давая системе выполнять действия по умолчанию —
что приводит к появлению нежелательных артефактов)

+

ф-я SetWindowRgn(...)

Вроде больше ничего не надо.

PS: Пример артефакта:
Когда будешь тестировать на W2K проверь следующие:
1. Открой калькулятор, Окно с перерисованным заголвком (например WinAmp).
2. Схвати калькулятор за заголовок и проведи сверху несколько раз через границу
WinAmp'a(Окно должно таскаться целиком, а не рамка)
3. Нажми в Таск Баре, правой кнопкой на кнопке WinAmp чтоб показалось системное меню.
4. Опля появилась стандартный заголовок виндовского окна
С уважением, OlegO.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.