Я хочу создать окно с очень толстой рамкой...
Как слелать так, чтобы эта рамка находилась в неклиетской области окна?
Здравствуйте KaSA, Вы писали:
KSA>Здравствуйте Vis, Вы писали:
Vis>>Я хочу создать окно с очень толстой рамкой...
Vis>>Как слелать так, чтобы эта рамка находилась в неклиетской области окна?
KSA>Обработать сообщения:
KSA>WM_NCCALCSIZE — для установления необходимых размеров неклиентской области
KSA>WM_NCPAINT — для отрисовки рамки
Одно замечания, не сразу получится перекрыть рисование под W2K для окна с заголовком и таск баром с иконкой, Caption то и дело будет перекрываться стандартным виндовским

.
Здравствуйте KaSA, Вы писали:
KSA>Обработать сообщения:
KSA>WM_NCCALCSIZE — для установления необходимых размеров неклиентской области
KSA>WM_NCPAINT — для отрисовки рамки
спасибо, но это я уже знал...
с сообщением WM_NCCALCSIZE у меня вышли проблемы...
Делаю так, когда приходит сообщение
в lParam получаем массив 3 прямоугольников.
Насколько я помню — 3-й и должен быть размером клиетской области
(Остальное будет неклиетской)
Значит модифицируем его...
Но Spy++ показывет, что клиетская область раска всей области...
Здравствуйте 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;
и посмотри, что из этого выйдет...