Встроенный диалог в Tab Control не может работать во втором диалоге, MFC

У меня есть следующий код, который работает в главном диалоге, но не может работать во втором (или третьем) диалоге. Дело в том, что я хочу, чтобы на каждой странице вкладки отображался встроенный диалог, он похож на страницу свойств.

Сначала я создаю два диалога, IDD_DIALOG1 а также IDD_DIALOG2Затем я меняю их стиль на child и граничит с None, После этого я добавляю CDialog класс для каждого из них.

В моем MainDialog.hУ меня есть следующий код:

#include "Dialog1.h"#include "Dialog2.h"...
public:
CDialog1 m_para1;
CDialog2 m_para2;
CTabCtrl m_TabCtrl;

В моем MainDialog.cppЯ использую следующий код для встраивания диало в OnInitDialog:

m_TabCtrl.InsertItem(0, _T("TAB1"));
m_TabCtrl.InsertItem(1, _T("TAB2"));
m_para1.Create(IDD_DIALOG1,GetDlgItem(IDD_MAINDIALOG));
m_para2.Create(IDD_DIALOG2,GetDlgItem(IDD_MAINDIALOG));

CRect rs;
m_TabCtrl.GetClientRect(&rs);

rs.top+=37;
rs.bottom+=8;
rs.left+=13;
rs.right+=7;

m_para1.MoveWindow(&rs);
m_para2.MoveWindow(&rs);

m_para1.ShowWindow(TRUE);
m_para2.ShowWindow(FALSE);m_TabCtrl.SetCurSel(1);

Используя этот способ, он может работать в этом случае. Но если я хочу использовать этот метод в моем SecondDialog, не главный диалог, он не может работать. Кто-нибудь может мне помочь? Заранее спасибо.

0

Решение

Когда вы создаете немодальное диалоговое окно, попробуйте это:

m_para1.Create(IDD_DIALOG1,&m_TabCtrl);
m_para2.Create(IDD_DIALOG2,&m_TabCtrl);

Второй параметр Create Функция является точкой для родительского объекта окна (типа CWnd) к которому принадлежит объект диалога. Тип возвращаемого значения GetDlgItem функция HWND,

Смотрите следующее:
http://msdn.microsoft.com/en-us/library/tc46f3be.aspx
http://msdn.microsoft.com/en-us/library/kc6x1ya0.aspx

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]