как вызвать еще один диалог?
нужно чтоб по определенному событию (например по кнопке, это не важно) вызывался второй диалог, а первый соответственно закрывался. Я в проект добавляю его, а вот че дальше делать не понимаю. Может поможет кто?
Нет ничего проще... Вариант номер один... Если диалог больше не нужен...
Создать второй проект диалога и из первого:
CreateProcess(.......);
this->EndDialog();
Вариант второй:
Создать в ресурсах диалог, создать класс диалогового окна и:
CMyDialog d(this);
d.DoModal();
this->ShowWindow(SW_HIDE);
А как потом по закрытию этого второго диалога снова сделать видимым первый?
this->CloseWindow();
а потом?
нужно чтоб по определенному событию (например по кнопке, это не важно) вызывался второй диалог, а первый соответственно закрывался. Я в проект добавляю его, а вот че дальше делать не понимаю. Может поможет кто?
Лучше используй не модальные диалоги(modeless dialog).
Спасибо!
А как потом по закрытию этого второго диалога снова сделать видимым первый?
this->CloseWindow();
а потом?
Деструкторе закрываемого диалога:
this->m_pParentWnd->ShowWindow(SW_SHOW);
Деструкторе закрываемого диалога:
this->m_pParentWnd->ShowWindow(SW_SHOW);
Объясни, зачем ты постоянно используешь this там, где можно обойтись без него?
а как без него?
Просто не пиши его. Если не задан область видимости, то он подразумевается.
Напр. внутри методов класса CDialog
CloseWindow(...), это эквивалент this->CloseWindow(...)
а
::CloseWindow(...), это уже Win32 API ф-ия.
Просто не пиши его. Если не задан область видимости, то он подразумевается.
Напр. внутри методов класса CDialog
CloseWindow(...), это эквивалент this->CloseWindow(...)
а
::CloseWindow(...), это уже Win32 API ф-ия.
Ну в принципе конечно по баробану, хоть this, хоть без, Только после this-> Выскакивает окошко со списком функций, как и при ::. Просто мне так удобней, меньше в синтаксисе ошибок...
Ну в принципе конечно по баробану, хоть this, хоть без, Только после this-> Выскакивает окошко со списком функций, как и при ::. Просто мне так удобней, меньше в синтаксисе ошибок...
Проще Ctrl+Space (в VC++ 6.0)
или Ctrl+J (.Net)
Проще Ctrl+Space (в VC++ 6.0)
или Ctrl+J (.Net)
Спасибо, не знал...
Нет ничего проще... Вариант номер один... Если диалог больше не нужен...
Создать второй проект диалога и из первого:
CreateProcess(.......);
this->EndDialog();
Вариант второй:
Создать в ресурсах диалог, создать класс диалогового окна и:
CMyDialog d(this);
d.DoModal();
this->ShowWindow(SW_HIDE);
А ты сам то пробовал сделать то, что рекомендуешь?
Дело в том, что вызывать ShowWindow(SW_HIDE) после DoModal() не имеет смысла. Это надо делать до.
Кроме того делать так:
this->m_pParentWnd->ShowWindow(SW_SHOW);
тоже нет смысла можно просто вызвать ShowWindow(SW_SHOW) после DoModal(). Это более корректно с точки зрения архитектуры, т.к. в этом случае лишь класс CMyDialog не связан с классом его вызывающим.
ShowWindow(SW_HIDE);
d.DoModal();
ShowWindow(SW_SHOW);
А ты сам то пробовал сделать то, что рекомендуешь?
Дело в том, что вызывать ShowWindow(SW_HIDE) после DoModal() не имеет смысла. Это надо делать до.
Кроме того делать так:
this->m_pParentWnd->ShowWindow(SW_SHOW);
тоже нет смысла можно просто вызвать ShowWindow(SW_SHOW) после DoModal(). Это более корректно с точки зрения архитектуры, т.к. в этом случае лишь класс CMyDialog не связан с классом его вызывающим.
ShowWindow(SW_HIDE);
d.DoModal();
ShowWindow(SW_SHOW);
В принцепе согласен... Просто не пришло в голову... Я не думал о коректности, а хотел показать идею...