2016-09-07 3 views
0

내 기본 대화 상자 :: OnInit() 메서드에서 CTabCtrl을 상속 한 클래스가있는 MFC 응용 프로그램이 있습니다.CTabCtrl MFC에서의 컨트롤 처리

tabCtrl.InsertItem(0, _T("Tab 1")); 
tabCtrl.InsertItem(1, _T("Tab 2")); 
tabCtrl.InitDialogs(); 

tabCtrl.ActivateTabDialogs(); 
tabCtrl.ShowWindow(SW_SHOW); 

tabCtrl이 CTabCtrl에서 상속 된 클래스의 변수, 메소드 InitDialogs은 다음과 같습니다

m_Dialog[0]->Create(m_DialogID[0], this); 
m_Dialog[1]->Create(m_DialogID[1], this); 
m_Dialog[0]->ShowWindow(SW_SHOW); 

m_Dialog * 내가 자원 클래스에서 도출 대화 클래스가 모두 포함되어 있습니다. 나는이 프로그램을 실행할 때 나는 그것을 그려로

나는 두 탭을 볼 수 있지만 내가

UpdateData(TRUE); 
valueTest = "tEST"; 
UpdateData(FALSE); 

뭔가를 할 때 나는 주장이 오류를 실패 얻을. 내있는 DoDataExchange가 호출되고 그것은 다음과 같습니다

void ConfigDialog::DoDataExchange(CDataExchange* pDX) 
{ 
    CDialogEx::DoDataExchange(pDX); 
    DDX_Text(pDX, IDC_EDIT1, valueTest); 
} 

나는 일이 함께 strugling 있었고, 그 내부의 컨트롤이없는 더미 탭이있는 사례를 발견하기 위해 나는 단지 수 있었다. 내가 빠진 어떤 조치가 있습니까?

업데이트 : 어설 션 오류 공연이

의 Microsoft Visual C++ 런타임 라이브러리 --------------------------- 디버그 어설 션이 실패했습니다! 프로그램 : C : \ Windows \ SYSTEM32 \ mfc140d.dll 파일 : f : \ dd \ vctools \ vc7libs \ ship \ atlmfc \ src \ mfc \ wincore.cpp 줄 : 4355 의 경우 어설 션 오류가 발생할 수있는 방법에 대한 정보

을 주장 그리고 그것은 내가 그것을 IDC_EDIT1의 ID를 가지고 있기 때문에 편집 컨트롤의 가정 때문에 updateData (TRUE) 문장

+0

tabCtrl.SetDlgItemText(IDC_EDIT1, valueTest); 

가를 검색하려면 : 당신은 몇 가지 탭의 자식 창에있는 경우

, 뭔가를 시도? 어설트가 실패한 것을보고 계시나요? –

+0

내 문제는 컨트롤의 속성을 변경할 수 없다는 것입니다. 시도 할 때 컨트롤이 실패합니다. –

+2

어설 션 대화 상자의 ** 정확한 ** 오류 메시지를 게시하십시오. [Ctrl] + C를 사용하여 텍스트를 복사 할 수 있습니다. 스크린 샷이 도움이 될 수 있지만 꼭 필요한 것은 아닙니다. – IInspectable

답변

0

에 실패에 은 Visual C++ 설명서를 참조하십시오. ASSERT는 ConfigDialog의 하위 창으로 IDC_EDIT1 ID가있는 창이 없기 때문에 제공됩니다. 탭 컨트롤 중 하나의 하위 항목입니까? DDX_ * 매크로는 대화 상자 클래스의 하위 창에만 작동합니다. 실제 문제가 무엇,

tabCtrl.GetDlgItemTText(IDC_EDIT1, valueTest); 
+0

ConfigDialog는 mainDialog의 childDialog 중 하나입니다.하지만 내가 말하는 내용을 이해하면 확실하지 않습니다. –

+0

텍스트를 가져 와서 컨트롤을 편집하려고합니다. 컨트롤은 대화 상자의 자식입니까, 탭의 자식입니까? 또한 DoModal을 호출하기 전에 UpdateData()를 호출합니까? UpdateData를 호출하기 전에 DoModal을 호출해야합니다. –

+0

편집 컨트롤은 탭 대화 상자의 기본 대화 상자에서 DoModal을 호출해야합니까? 탭의 하위 항목입니다. –