본문 바로가기

c++/MFC

[MFC] Edit 에디트 입력 제한하기. SetLimitText는 길이만, 바이트 단위로 제한 안되므로...

반응형

SetLimitText는 길이만 제한되고 바이트 단위로 제한 안됨.

하지만 한글은 2byte character.



에디트에 UM_UPDATE추가

void CMyClass::OnEnUpdateEditMyEdit()
{
	UpdateData(TRUE);
	CString strReturn = "";
	m_edMyEdit.GetWindowText(strReturn);
	INT nMaxLen = MultiByteToWideChar(CP_UTF8, 0, strReturn, -1, NULL, 0);
	if (nMaxLen > (MAXLEN + 1) && m_nIndex != 1)
	{
		DWORD dwSel = m_edMyEdit.GetSel();
		m_edMyEdit.SetWindowText(m_strOld);
		m_edMyEdit.SetSel(HIWORD(dwSel), HIWORD(dwSel));
	}
        else
	{
		m_strOld = strReturn;
	}
	UpdateData(FALSE);
}


반응형