Автор
|
Тема: вкладывание диалогов
|
reporter |
опубликован 12-02-2002 19:23 MSK
Возникла такая проблема. Я знаю, что через МФЦ (наверное, и не только) можно делать такой изврат, как "вкладывание" диалогов один в другой. Например, чтобы сделать диалог "Open File" с доп. кнопками. Но можно ли так же вмонтировать в диалог страницу с закладками, CPropertySheet ? Вообще, мне нужно сделать окошко, на котором были бы и закладки, и другие, от них независимые конпки, статики и т.д....
|
migel
|
опубликован 12-02-2002 22:23 MSK
Все можно и очень просто относительно... Лови нужные WM_NOTIFY от TabControla и делай SetWindowPos для своих диалогов (SWP_SHOWWINDOW.... SWP_HIDEWINDOW)... Да не забудь WS_EX_CONTROLPARENT к диаложкам добавлять |
reporter
|
опубликован 12-02-2002 23:46 MSK
Брррррр... Что-то я совсем не въезжаю, что делать-то ? У Дж. Круглинского есть пример, где он делает диалог с груп-боксом, ему дает спец. имя, а потом прицепляет этот диалог к классу CFileDialog, при этом получается, что файловый диалог как-бы в груп-боксе, а вокруг делай что хочешь... По этому принципу и я пытаюсь прицепить к диалогу CPropertySheet. |
ADK
|
опубликован 13-02-2002 06:50 MSK
Сходи на codeproject.com в раздел property sheets и возьми готовое решение. |
necer
|
опубликован 13-02-2002 10:18 MSK
В родительском диалоге там, где нужно создать:m_pChildDlg = new (CChildDlg); m_pChildDlg->Create(CChildDlg::IDD, this); m_pChildDlg->SetWindowPos(NULL, 10, 20, 0, 0, SWP_NOSIZE | SWP_NOZORDER); m_pChildDlg->ShowWindow(SW_SHOW); ну и не забыть удалить при закрытии: if (m_pChildDlg) { m_pChildDlg->DestroyWindow(); delete m_pChildDlg; } Еще для m_pChildDlg надо установить WS_CHILD. В этом примере диалог, но подобное можно делать с любым окном. |
reporter
|
опубликован 13-02-2002 22:46 MSK
О, все, спасибо... Супер... :-) |