Re[2]: Диалог в Диалоге
От: yndtrud  
Дата: 05.03.08 08:52
Оценка:
Удалено избыточное цитирование. — SchweinDeBurg

Здравствуйте, Sashaka, Вы писали:

S>ты UpdateData может не вызываешь _для_ CDialogB ?


Обрати внимание что ты создаешь диалоги на основе CTabDlg. То есть на сколько я понимаю у тебя есть

class CSashakaDialog::public CDialog{
....
}

где то еще у тебя есть
class CTabDlg::public CDialog{
}

И в CSashakaDialog::OnInitDialog ты 
{
CDialog::OnInitDialog();

for (int i=0; i<DLG_COUNT; i++)
    {
        m_pTab[i]=new CTabDlg(IDD_DIALOG1+i);
        m_pTab[i]->Create(IDD_DIALOG1+i);
        m_pTab[i]->MoveWindow(TAB_POS_X,TAB_POS_Y,m_pTab[i]->m_nWidth,m_pTab[i]->m_nHeight,true);
    }

m_pTab[m_nSel]->ShowWindow(SW_SHOW);

Да это быдет работать так как DDX у тебя в CTabDlg.

Я же парюсь не с этим:
Пусть у тебя нет CTabDlg. А есть просто CDialog.
Смотри:
class CDialogA:public CDialog (свой шаблон)
class CDialogB:public CDialogA (устанвливает в конструкоре дополнительный шаблон (в переменную член класса CDialogA)
то есть это один и тот же объект CDialog

На CDialogA::OnInitDialog
Должно нужно создать Child Dialog на основе указанного шаблона и заставить сообщения приходить В CDialogB (что есть одно и тоже при наследовании CDialogA).
Они доходят так как Child создан у меня на основе просто CDialog.
Каким то оброзом надо мой Child заставить сначала посылать сообщения в CDialogB (CDialogA). и если CDialogB не обработает их то нужно возвращать обработку в Child. Вот.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.