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++
  Обмен данными между PropertyPage's

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

Автор Тема:   Обмен данными между PropertyPage's
Dim0S опубликован 23-01-2002 10:53 MSK   Click Here to See the Profile for Dim0S   Click Here to Email Dim0S  
Нигде не могу найти толкового объяснения, как обмениваться данными между PropertyPage's. Как сделать значения полей одной страницы доступными с другой? И еще, можно ли, изменяя состояние, допустим check'a, на активной странице скрывать/показывать неактивную?
ADK опубликован 23-01-2002 11:50 MSK     Click Here to See the Profile for ADK  Click Here to Email ADK     
Всё можно, как обычно. Выцепи хэндл страницы, и потом GetDlgItem и т.д., посылка сообщений. проблема в том, что по умолчанию страницы создаются при первом обращении, но, по-моему, это можно изменить через флаги.
Dim0S опубликован 23-01-2002 15:49 MSK     Click Here to See the Profile for Dim0S  Click Here to Email Dim0S     
Спасибо!
Вот, что я раскопал еще, если кому интересно:

CPropertySheet* pSheet = STATIC_DOWNCAST(CPropertySheet, GetParent());
CPropSheet* pPropSheet = DYNAMIC_DOWNCAST(CPropSheet, pSheet);
// CPropSheet - мой класс, производный от CPropertySheet
if (pPropSheet != NULL)
{
UpdateData();
TINumDeviceTo = pPropSheet->m_pageMain.m_editKanTI;
SetModified();
}
// где TINumDeviceTo - int, определена на текущей странице;
// m_pageMain - та страница, с которой считываются данные
// поля CEdit (переменная m_editKanTI)

Thorn опубликован 23-01-2002 19:22 MSK     Click Here to See the Profile for Thorn  Click Here to Email Thorn     
Можно сделать так.
Определяешь класс - наследник CPropertySheet, например СPSheet
и, для примера, 3 странички CFirstPage, CSecondPage, CTherdPage

В CPSheet
// Data
CFirstPage pageF;
CSecondPage pageS;
CTherdPage pageT;

// Конструктор
CPSheet::CPSheet()
{
pageF.sheetP = this;
pageS.sheetP = this;
pageT.sheetP = this;
}

CPSheet* sheetP - в каждой страничке

Теперь можно создать
CPSheet sheet("");
sheet.AddPage(&sheet.pageF);
sheet.AddPage(&sheet.pageS);
sheet.AddPage(&sheet.pageT);
sheet.DoModal();

Если нужно создавать и удвлять странички динамически, то, например для мастера, можно использовать методы OnSetActive(), OnWizardFinish, ..Back(), ..Next() и т.п.

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


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.