본문 바로가기

MFC

메시지를 통해서 double 형 값을 전달하는 방법

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));

반응형