728x90
반응형
사용자 정의 메시지를 통해서 double 형 값을 전달하기 위해서는
전달하고자 하는 값을 정수부와 실수부(소수점이하값)로 나누어야 한다.
그리고 해당 값의 기호(+/-)도 구해놓아야 한다.
사용자 정의 메시지값은 WM_USER + 1 이라고 가정한다.
우선 double 형 값을 위에 언급한 정수부, 실수부, 기호 로 분리한다.
double dValue = -2.0;
CString str;
str.Format("%.1f", dValue);
BOOL bNegative = (dValue < 0);
int nPos = str.Find(".");
// 정수부
CString strIntNumber = (-1 == nPos) ? str : str.Left(nPos);
// 실수부
CString strDecimalNumber = (-1 == nPos) ? "0" : str.Mid(nPos + 1);
int nIntNumber = abs(atoi(strIntNumber));
int nDecimalNumber = atoi(strDecimalNumber);
SendMessage(WM_USER + 1, MAKEPARAM(nDecimalNumber, nIntNumber), MAKELPARAM(bNegative,0));
전달하고자 하는 값을 정수부와 실수부(소수점이하값)로 나누어야 한다.
그리고 해당 값의 기호(+/-)도 구해놓아야 한다.
사용자 정의 메시지값은 WM_USER + 1 이라고 가정한다.
우선 double 형 값을 위에 언급한 정수부, 실수부, 기호 로 분리한다.
double dValue = -2.0;
CString str;
str.Format("%.1f", dValue);
BOOL bNegative = (dValue < 0);
int nPos = str.Find(".");
// 정수부
CString strIntNumber = (-1 == nPos) ? str : str.Left(nPos);
// 실수부
CString strDecimalNumber = (-1 == nPos) ? "0" : str.Mid(nPos + 1);
int nIntNumber = abs(atoi(strIntNumber));
int nDecimalNumber = atoi(strDecimalNumber);
SendMessage(WM_USER + 1, MAKEPARAM(nDecimalNumber, nIntNumber), MAKELPARAM(bNegative,0));
반응형
'MFC' 카테고리의 다른 글
TRACE (ANSI vs UNICODE) (0) | 2008.12.10 |
---|---|
MFC 4.x 와 MFC 9.x 의 차이점 (스핀컨트롤 CreateEx) (0) | 2008.12.05 |
CDialogBar 로부터 상속받은 클래스에서 포함 컨트롤 초기화하기 (0) | 2008.11.13 |
CString 을 const char* 로 형변환 방법 (0) | 2008.10.17 |
IME 프로그래밍을 위한 환경 설정 (1) | 2008.10.12 |