WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  вкладывание диалогов

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   вкладывание диалогов
reporter опубликован 12-02-2002 19:23 MSK   Click Here to See the Profile for reporter   Click Here to Email reporter  
Возникла такая проблема. Я знаю, что через МФЦ (наверное, и не только) можно делать такой изврат, как "вкладывание" диалогов один в другой. Например, чтобы сделать диалог "Open File" с доп. кнопками.
Но можно ли так же вмонтировать в диалог страницу с закладками, CPropertySheet ? Вообще, мне нужно сделать окошко, на котором были бы и закладки, и другие, от них независимые конпки, статики и т.д....
migel опубликован 12-02-2002 22:23 MSK     Click Here to See the Profile for migel  Click Here to Email migel     
Все можно и очень просто относительно...
Лови нужные WM_NOTIFY от TabControla и делай SetWindowPos для своих диалогов (SWP_SHOWWINDOW.... SWP_HIDEWINDOW)...
Да не забудь WS_EX_CONTROLPARENT к диаложкам добавлять
reporter опубликован 12-02-2002 23:46 MSK     Click Here to See the Profile for reporter  Click Here to Email reporter     
Брррррр... Что-то я совсем не въезжаю, что делать-то ? У Дж. Круглинского есть пример, где он делает диалог с груп-боксом, ему дает спец. имя, а потом прицепляет этот диалог к классу CFileDialog, при этом получается, что файловый диалог как-бы в груп-боксе, а вокруг делай что хочешь... По этому принципу и я пытаюсь прицепить к диалогу CPropertySheet.
ADK опубликован 13-02-2002 06:50 MSK     Click Here to See the Profile for ADK  Click Here to Email ADK     
Сходи на codeproject.com в раздел property sheets и возьми готовое решение.
necer опубликован 13-02-2002 10:18 MSK     Click Here to See the Profile for necer  Click Here to Email necer     
В родительском диалоге там, где нужно создать:

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     Click Here to See the Profile for reporter  Click Here to Email reporter     
О, все, спасибо... Супер... :-)

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.