2012-09-20 3 views
1

C#에서 수년 동안 근무한 후 필자는 이전에 작성한 MFC 응용 프로그램으로 돌아 왔습니다. 하지만 몇 가지 일에 재충전이 필요해 보입니다.대화 상자 변수 - DoDataExchange()에 항목이 추가되지 않았습니다.

기존 대화 상자에 확인란 컨트롤을 추가했습니다. 그런 다음 Class Wizard를 사용하여 bool 유형의 비 제어 변수를 추가했습니다. 변수가 예상대로 작성되었습니다.

그러나 DoDataExchange() 메소드에는 항목이 추가되지 않았습니다. 그리고 수동으로 추가하려고 할 때 :

DDX_Check(pDX, IDC_PRINT_SUMMARY, m_bPrintSummary); 

은 내가 인텔리 오류가 :

나는 변수를 추가 할 때 DoDataExchange()의 항목이 나를 위해 만들어지지 않은 이유는

a reference of type "int &" (not const-qualified) cannot be initialized with a value of type "bool"

1?

2DDX_Check()이 기대와 int &, 왜 클래스 마법사 기본 체크 박스 값 bool를 입력 할 않은 경우?

답변

2

확인란은 세 가지 값 중 하나 일 수 있으므로 int가 필요합니다.

BST_CHECKED - 버튼이 선택되어 있는지 확인합니다.

BST_INDETERMINATE - 버튼이 회색으로 표시되어 불확정 상태를 나타냅니다 (버튼에 BS_3STATE 또는 BS_AUTO3STATE 스타일이있는 경우에만 적용됨).

BST_UNCHECKED

- 버튼은 (는)있는 DoDataExchange 편집을 자동 아니다 이유에

을 클리어, 아마 클래스의 C++ 형식의 문제입니다.

+0

그렇다면 내 질문은 여전히 ​​의미합니다 : 체크 박스의 변수가 'bool'인 이유는 무엇입니까? –

+0

이것은 버그입니다. 나는 BOOL로 기본 설정하는 데 익숙해 졌다고 생각한다. – snowdude

관련 문제