ListCtrl (리스트 컨트롤) - LVN_ITEMCHANGED
List컨트롤의 통지 메시지 중의 LVN_ITEMCHANGED 라는 메시지가 있다.
다른 통지 메시지와 다르게 살짝 까다로워서 바로 쓰다기 보다는 조금 조작을 해주어야 한다.
1. 일반적인 설명
: 선택된 항목이 다른 항목으로 변경되었을 때
즉, 어느 항목을 선택 하면 위 통지메시지가 발생 한다.
여기서 다시 어느 다른 항목을 선택하면 또 발생 하겠지.
예상과는 다르게 주의 해야 할 점이 있다.
이 통지 메시지가 발생되는 시점이 예상처럼 단순하지 않다.
2. LVN_ITEMCHABGED 가 발생하는 경우 ① 처음 새로운 항목을 선택 했을 경우
② 선택된 항목이 포커스를 잃을 경우
③ 항목이 생성될 때
즉, 항목이 생성될때와 선택포커스를 받을 때, 그리고, 선택포커스를 잃을때도 발생.
특히, 선택항목이 바뀔때는 메세지가 두번 호출.
@
2008년 7월 23일 수요일
2008년 7월 2일 수요일
CString 변수 값이 숫자 값인지 판별 - atoi()에 대하여
CString 변수 값이 숫자 값인지 판별 - atoi()에 대하여
일반적으로 Edit 컨트롤의 값을 CString 변수의 값으로 받게 된다.
그 값이 숫자로만 된 정수값인지 판별해야 할 필요가 생겼다.
라이브러리 함수 중에 atoi() 라는 함수가 있다.
인수로 문자열 포인터를 주어주면
만약 숫자로 된 문자열일 경우 해당하는 숫자문자열을 int형 숫자로 변경해 준다.
1. 인수가 "aaa" 일 경우
NULL 을 리턴한다.
2. 인수가 "123" 일 경우
123 을 리턴한다.
3. 인수가 "12a2" 일 경우
NULL을 리턴 할줄 알았는데12를 리턴한다.


(방법 1)
물론 여러 방법이 있겠지만 atoi() 함수가 위의 3번 같은 결과를 리턴하는 것을 이용해 보았다.
1. CString 값을 char * 형으로 변환 한다.
2. 변환한 char *형 값을 atoi() 함수 인수에 넣어 실행시켜 본다.
2-1. NULL 을 리턴하면 문자값으로 시작한 값이므로 return;
3. 변환한 char *형 값을 다시 CString 형으로 변환한다.
4. 변환된 CString 형 값이 맨처음 CString 과 다르면 숫자 중간에 문자가 낀 것이므로 return;

@
일반적으로 Edit 컨트롤의 값을 CString 변수의 값으로 받게 된다.
그 값이 숫자로만 된 정수값인지 판별해야 할 필요가 생겼다.
라이브러리 함수 중에 atoi() 라는 함수가 있다.
int atoi( const char *string );
인수로 문자열 포인터를 주어주면
만약 숫자로 된 문자열일 경우 해당하는 숫자문자열을 int형 숫자로 변경해 준다.
1. 인수가 "aaa" 일 경우
NULL 을 리턴한다.
2. 인수가 "123" 일 경우
123 을 리턴한다.
3. 인수가 "12a2" 일 경우
NULL을 리턴 할줄 알았는데12를 리턴한다.


(방법 1)
물론 여러 방법이 있겠지만 atoi() 함수가 위의 3번 같은 결과를 리턴하는 것을 이용해 보았다.
1. CString 값을 char * 형으로 변환 한다.
2. 변환한 char *형 값을 atoi() 함수 인수에 넣어 실행시켜 본다.
2-1. NULL 을 리턴하면 문자값으로 시작한 값이므로 return;
3. 변환한 char *형 값을 다시 CString 형으로 변환한다.
4. 변환된 CString 형 값이 맨처음 CString 과 다르면 숫자 중간에 문자가 낀 것이므로 return;

@
피드 구독하기:
글 (Atom)