본문 바로가기

프로그래밍/미분류

[VS2008] AddVariable 시 DoDataExchange에 컨트롤과 변수 연결코드가 자동으로 생성되지 않는다.

반응형

6.0까지는 클래스 위자드를 이용해서 간단하게 컨트롤과 변수를 연결할 수 있었다. 변수를 생성하면 컨트롤과 변수 사이에 값을 세팅해 주거나, 값을 가져오는 코드가 DoDataExchange 안에 자동으로 생성된다.


2008까지는 클래스 위자드가 없어지고, 리소스 에디트 화면에서 컨트롤 - 오른쪽클릭 - AddVariable 메뉴를 통해 변수를 추가한다. 변수를 추가할 때 컨트롤이 아닌 CString, int 등의 Value 형 변수를 추가하려고 했는데, UpdateData가 동작하지 않는 것 같았다. DoDataExchange함수 안에 해당 컨트롤-변수간의 통신과 관련된 코드가 추가되지 않았었다.


문제를 해결하기 위해 검색을 해 보았더니, 내가 Value 변수를 만들 때 Variable Wizard를 잘 못 썼었다.



그림에서 위쪽의 Control variable 체크박스를 없애니 CEdit선택이 bool, int 등의 일반 변수형으로 바뀌어서 그렇게 생성했었는데, 그렇게 생성하면 안 되고, 그 체크박스를 그대로 놓아 둔 채 Category의 Control을 Value 로 바꾸어 생성해야 하는 거였다.

참조 : http://social.msdn.microsoft.com/Forums/ar/vclanguage/thread/84671994-c294-407a-9e0a-d9c954e7be47 의 마지막 답변. 한국사람이 쓴 답변인 듯 하다.


728x90