Re[3]: Сustom Non-Client Area
От: KaSA  
Дата: 31.07.02 11:05
Оценка: 3 (1)
Здравствуйте Vis, Вы писали:


KSA>>WM_NCCALCSIZE — для установления необходимых размеров неклиентской области

KSA>>WM_NCPAINT — для отрисовки рамки

Vis>спасибо, но это я уже знал...


Vis>с сообщением WM_NCCALCSIZE у меня вышли проблемы...

Vis>Делаю так, когда приходит сообщение
Vis>в lParam получаем массив 3 прямоугольников.
Vis>Насколько я помню — 3-й и должен быть размером клиетской области
Vis>(Остальное будет неклиетской)
Vis>Значит модифицируем его...


Вот тут ты не прав Модифицировать надо неклиентские координаты.

Попробуй в обработчике WM_NCCALCSIZE

NCCALCSIZE_PARAMS* pparms = (NCCALCSIZE_PARAMS*lParam);

      pparms->rgrc[0].left   += 20;
      pparms->rgrc[0].top   += 20;


и посмотри, что из этого выйдет...
Сustom Non-Client Area
От: Vis Украина  
Дата: 31.07.02 10:09
Оценка:
Я хочу создать окно с очень толстой рамкой...
Как слелать так, чтобы эта рамка находилась в неклиетской области окна?
Re: Сustom Non-Client Area
От: KaSA  
Дата: 31.07.02 10:20
Оценка:
Здравствуйте Vis, Вы писали:

Vis>Я хочу создать окно с очень толстой рамкой...

Vis>Как слелать так, чтобы эта рамка находилась в неклиетской области окна?

Обработать сообщения:

WM_NCCALCSIZE — для установления необходимых размеров неклиентской области
WM_NCPAINT — для отрисовки рамки
Re[2]: Сustom Non-Client Area
От: OlegO Россия http://www.mediachase.ru
Дата: 31.07.02 10:28
Оценка:
Здравствуйте KaSA, Вы писали:

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


Vis>>Я хочу создать окно с очень толстой рамкой...

Vis>>Как слелать так, чтобы эта рамка находилась в неклиетской области окна?

KSA>Обработать сообщения:


KSA>WM_NCCALCSIZE — для установления необходимых размеров неклиентской области

KSA>WM_NCPAINT — для отрисовки рамки

Одно замечания, не сразу получится перекрыть рисование под W2K для окна с заголовком и таск баром с иконкой, Caption то и дело будет перекрываться стандартным виндовским .
С уважением, OlegO.
Re[2]: Сustom Non-Client Area
От: Vis Украина  
Дата: 31.07.02 10:28
Оценка:
Здравствуйте KaSA, Вы писали:

KSA>Обработать сообщения:


KSA>WM_NCCALCSIZE — для установления необходимых размеров неклиентской области

KSA>WM_NCPAINT — для отрисовки рамки

спасибо, но это я уже знал...

с сообщением WM_NCCALCSIZE у меня вышли проблемы...
Делаю так, когда приходит сообщение
в lParam получаем массив 3 прямоугольников.
Насколько я помню — 3-й и должен быть размером клиетской области
(Остальное будет неклиетской)
Значит модифицируем его...

Но Spy++ показывет, что клиетская область раска всей области...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.