Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

OnSize, nType

34K
19 февраля 2009 года
romikiz
28 / / 26.11.2008
Имеем проект на MFC, VS6, по сообщению WM_SIZE нужно получить MessageBox, делаю так:
 
Код:
void CMCDView::OnSize(UINT nType, int cx, int cy)
{
    CView::OnSize(nType, cx, cy);
    if(nType==SIZE_MINIMIZED)
    {
             MessageBox("Bla", "Bla", MB_OK);
    }
}

но почему-то на SIZE_MINIMIZED не реагирует, а если пробую SIZE_RESTORED, то всё ОК...
В поиск не посылать, ни чего подобного не нашел...
В чём проблема...?:confused:
14
19 февраля 2009 года
Phodopus
3.3K / / 19.06.2008
Золотое правило: не хочешь в поиск - лезь в дебаггер.
Какое значение принимает nType?
34K
19 февраля 2009 года
romikiz
28 / / 26.11.2008
В том то и дело, что nType при свертывании окна ни какого значения не получает...
Почему? Для меня загадка!
14
19 февраля 2009 года
Phodopus
3.3K / / 19.06.2008
Метод-то OnSize() вызывается при сворачивании?
34K
20 февраля 2009 года
romikiz
28 / / 26.11.2008
Чё-то я не догоняю, метод OnSize() должен вызываться при:
SIZE_MAXIMIZED
SIZE_MINIMIZED
SIZE_RESTORED
SIZE_MAXHIDE
SIZE_MAXSHOW

В моём же случае OnSize() вызывается лишь при SIZE_RESTORED...
Почему?

Если быть короче, то нет!!!
87
20 февраля 2009 года
Kogrom
2.7K / / 02.02.2008
Мало данных в вопросе. CMCDView - это что? Самодельный класс? Он наследник от CView? Тогда должно быть что-то типа:
Код:
class CMCDView : public CView
{
public:        
        OnSize(UINT nType, int cx, int cy) ; // Такое есть?
...
}

void CMCDView::OnSize(UINT nType, int cx, int cy)
{
    CView::OnSize(nType, cx, cy); // выполняем родительскую функцию
    if(nType == SIZE_MINIMIZED)
    {
             MessageBox("Bla", "Bla", MB_OK);
    }
}


Ради интереса можно попытаться заменить
MessageBox("Bla", "Bla", MB_OK);
на
::MessageBox(NULL, "Bla", "Bla", MB_OK);
288
20 февраля 2009 года
nikitozz
1.2K / / 09.03.2007
Если приложение SDI, обработчик события WM_SIZE должен находиться в классе самого окна, а не представления.

 
Код:
void CMainFrame::OnSize(UINT nType, int cx, int cy)
34K
20 февраля 2009 года
romikiz
28 / / 26.11.2008
Цитата: nikitozz
Если приложение SDI, обработчик события WM_SIZE должен находиться в классе самого окна, а не представления.

 
Код:
void CMainFrame::OnSize(UINT nType, int cx, int cy)



Вот спасибочки, вопрос решен...тему можно закрыть...

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог