Объясните толково (лучше на примере) как сделать самопрорисовывающееся окно (рамка, заголовок, кнопки системного меню
— по типу как в WinAmp'е)
Здравствуйте _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. Опля появилась стандартный заголовок виндовского окна
Great thanx, OlegO — отреагировал быстро. Но есть одно "НО" — все это я теоретически (почти все) уже знаю.
Не мог бы ты дать линк на пример, что ли.
Здравствуйте _coder, Вы писали:
C>Great thanx, OlegO — отреагировал быстро. Но есть одно "НО" — все это я теоретически (почти все) уже знаю.
C>Не мог бы ты дать линк на пример, что ли.
Посмотри здесь:
http://www.microsoft.com/msj/defaultframe.asp?page=/msj/0197/c++/c++0197.htm&nav=/msj/0197/newnav.htm