2009-07-27 3 views
1

나는 그것을 업데이트하는 과정에있는 아주 오래된 응용 프로그램을 상속 받았다. (나는 우리가 VS 2008에서 그것을 다시 작성해야만했지만, 우리는 유물에 걸린 회사를 구입했다) . UpdateData (TRUE)를 사용하여 대화 상자 컨트롤의 변경 내용을 검색하면 아무 것도 업데이트되지 않습니다. 정수 변수를 사용하는 편집 컨트롤과 클래스 마법사를 사용하여 할당 한 문자열 변수가있는 편집 컨트롤이 있습니다. OK 버튼을 누르면 UpdateData (TRUE)가 실행되어 disalog에서 새 값을 검색합니다.DoDataExchange VC++ 6.0

VS C++ 6.0이 처음 나왔을 때 비슷한 문제가 있었음을 기억하지만 VS 2003과 C#이 널리 사용되면서 사용하지 못했습니다.

미리 도움 주셔서 감사합니다.

당신은 DoDataExchange 방법의 내용을보고 그것이 무엇을하고 있는지 확인해야합니다
+0

게시 대화 상자 클래스의 DoDateExchange 메서드 – peterchen

답변

0

. 여기서 잘못된 정보가 무엇인지 알려주는 정보가 충분하지 않습니다.

1

DoDataExchange() 메소드를 확인하십시오. 컨트롤에 데이터를 쓰거나 컨트롤에서 데이터를 읽는 논리가 있어야합니다. 프로그래머가 기본 구현을 사용하면 읽기/쓰기되는 각 컨트롤에 대해 DDX _... 매크로가있게됩니다. 다른 MFC 대화 상자 (코드 또는 Google)를보고 DDX 명령이없는 경우 작성하는 방법을 확인하십시오.

또는 1 또는 2 값만 있으면 유효성 검사 등을 직접하지 않아도 쉽게 제어 할 수 있고 직접 읽을 수 있습니다. 폼 디자이너에서 컨트롤의 ID를 가져와 다음 줄을 따라 뭔가를 사용하십시오.

CEditWnd *pWnd = GetDlgItem(ID_THECONTROL); 
CString newValue = pWnd->GetWindowText(); 
...