Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Корректное открытие и закрытие немодалного диалога, Много примеров, но никак не соображу 
:(
    Опции темы
Hawkmoth
Дата 7.6.2010, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 22.10.2006

Репутация: нет
Всего: 1



Уважаемые знатоки, вновь попрошу помощи. Разъясните, пожалуйста, как сделать "послушным" немодальное диалоговое окно? Создаю его вот по этому примеру, привязываю к пункту меню. Открываю следующим образом (привязываю в имплементейшн-файле основного окна):

Код

void CProjectDlg::OnMyMenu()   {
    if (!m_Nemodal)      {
        m_Nemodal=new CNemodal;
        m_Nemodal>Create(IDD_NEMODAL_DLG);   }
    else    {
        m_Nemodal ->SetActiveWindow();   }
}


Закрываю так: прописываю в обработчике нажатия на кнопку Cancel в немодальном диалоге
Код

void CNemodal::OnCancel() 
{
    // TODO: Add extra cleanup here
    this->DestroyWindow();
    delete this;
}


Закрывается визуально корректно, но при попытке следующего вызова при нажатии на кнопку меню ничего не происходит. Где нужно подправить? Заранее спасибо.
PM MAIL   Вверх
Dem_max
Дата 7.6.2010, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 1
Всего: 39



delete this; вот это не надо делать.
А делать надо это delete m_Nemodal;



--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Hawkmoth
Дата 7.6.2010, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 22.10.2006

Репутация: нет
Всего: 1



Пробовал, получаю: C2065: 'm_Nemodal' - undeclared identifier.

m_Nemodal у меня определен в заголовочном файле основного окна вот так:

Код

CProjectDlg::CProjectDlg(CWnd* pParent /*=NULL*/)
    : CDialog(CProjectDlg::IDD, pParent)
{
    //{{AFX_DATA_INIT(CProjectDlg)
    m_Nemodal=NULL;
           //}}AFX_DATA_INIT
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

PM MAIL   Вверх
Andrey44
Дата 8.6.2010, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 12
Всего: 26



Код


void CProjectDlg::~CProjectDlg()   {
    if (m_Nemodal)      {
        delete m_Nemodal;

}

void CProjectDlg::OnMyMenu()   {
    if (!m_Nemodal)      {
        m_Nemodal=new CNemodal;
        m_Nemodal>Create(IDD_NEMODAL_DLG);   }
    else    {
        m_Nemodal ->ShowWindow(SW_SHOW);   }
}


void CNemodal::OnCancel() 
{
    this->ShowWindow(SW_HIDE);
}



--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Dem_max
Дата 8.6.2010, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 1
Всего: 39



Код

void CNemodal::OnCancel() 
{
    this->ShowWindow(SW_HIDE);
}

Да только экземпляр будет болтаться в памяти




--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Andrey44
Дата 8.6.2010, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 12
Всего: 26



Цитата(Dem_max @  8.6.2010,  16:02 Найти цитируемый пост)
Да только экземпляр будет болтаться в памяти


Цитата(Hawkmoth @  7.6.2010,  17:01 Найти цитируемый пост)
Закрывается визуально корректно, но при попытке следующего вызова при нажатии на кнопку меню ничего не происходит. Где нужно подправить?




--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.1093 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.