Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Изменение размеров окна?  (Прочитано 15235 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
asker
Помогающий

ru
Offline Offline
Пол: Мужской

« : 26-04-2006 08:10 » 

Перехватываю WM_SIZE, меняю размер, но ни чего не происходит.

Код:
void CGraphicEditorView::OnSize(UINT nType, int cx, int cy) 
        RECT rect;
bool isRectLess = false;

GetWindowRect(&rect);

if (cx < 400) {
cx = 400;
isRectLess = true;
}
if (cy < 400) {
cy = 400;
isRectLess = true;
}

if (isRectLess)
SetWindowPos(&wndTopMost, 0, 0, cx, cy, SWP_SHOWWINDOW);
else
CFormView::OnSize(nType, cx, cy);
}

Что я делаю не правильно?
Записан

С уважением, asker
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 26-04-2006 09:17 » 

в OnSize размеры вроде бы уже помененые, попробуй в OnSizing

(вечером, если что разберёмся)
Записан

asker
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 26-04-2006 09:55 » 

Пробовал, не помогает

Добавил в карту сообщений:
  afx_msg void OnSizing(UINT nSide, LPRECT lpRect);

Установил связь между сообщением и обработчиком
ON_WM_SIZING()

А вот и текст
Код:
void CGraphicEditorView::OnSizing( UINT nSide, LPRECT lpRect )
{
#define SIZE_AREA 400

if (lpRect->right - lpRect->left < SIZE_AREA) {
lpRect->right = lpRect->left + SIZE_AREA;
}

if (lpRect->bottom - lpRect->top < SIZE_AREA) {
lpRect->bottom = lpRect->top + SIZE_AREA;
}
CFormView::OnSizing(nSide, lpRect);
}

Он в Sizing даже не заходит
Записан

С уважением, asker
Malaja
Команда клуба

de
Offline Offline
Пол: Женский

« Ответ #3 : 26-04-2006 11:00 » 

asker,

проблема в том, что View находится внутри рамки, т.е. это белое поле внутри, а сама рамка - это CMainFrame, поэтому все это надо делать в CMainFrame.
Записан

холоднокровней, Маня, Ви не на работе
---------------------------------------
четкое определение сущности бытия:
- А мы в прошлом или в будущем?- спросила Алиса.
- Мы в жопе, - ответил кролик.
- А "жопа" - это настоящее? - спросила Алиса.
- А "жопа" - это у нас символ вечности.
asker
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 26-04-2006 14:42 » 

Malaja спасибо, все получилось.
Записан

С уважением, asker
asker
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 26-04-2006 15:31 » 

Алексей1153, также спасибо за участие в решение проблемы.

Кстати, classWizard отражает все сообщения, которые может обрабатывать объект (искл.: user's msg). Просто, скажем для моего класса, производного от CFormView, CW как раз и не отразил WM_SIZING. И VC во время отладки даже не заходил в обработчик WM_SIZING, почему?
« Последнее редактирование: 19-12-2007 21:55 от Алексей1153++ » Записан

С уважением, asker
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #6 : 26-04-2006 15:51 » 

asker, та не за что Улыбаюсь Я невнимательно ещё прочитал название класса, на обеде был Улыбаюсь (пытаюсь оправдываться Улыбаюсь))) )

у вьюшки нету боундера, поэтому наверное туда эти сообщения не Улыбаюсь
Записан

asker
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 27-04-2006 03:00 » new

Оправдываться не стоит, всякое бывает
А что такое боундер? Не понял
Записан

С уважением, asker
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #8 : 27-04-2006 09:18 » 

ну бордер то есть - вот у диалога, к примеру, ты наверняка видел край, за который можно менять размер окна

стиль WS_BORDER
Записан

asker
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 28-04-2006 12:53 » 

Понятно, спасибо
Записан

С уважением, asker
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines