[VC++] 질문입니다.
도란
2023.04.01
우선 프로그램의 개요는 Edit 컨트롤박에 입력된 문자열을 Timer를 이용하요
Text컨트롤에 회전을 시키는 프로그램입니다.
그중 Timer에있는 코드에서 오류를 발견했는데 해결방안이 안떠오르는 군요.
void CTimerStringDlg::OnTimer(UINT nIDEvent) {UpdateData(TRUE);CString temp;temp = m_strText.Left(1); // 임시변수에 Text의 왼쪽 첫번째 문자열을 넣는다.m_strText.TrimLeft(temp); // Text컨트롤에 있는 문자열중 임시변수와동일한 문자열을 잘라낸다.m_strText = m_strText + temp; // Text컨트롤의 맨뒤에 임시변수를 붙여 넣는다.UpdateData(FALSE);CDialog::OnTimer(nIDEvent);}빨간색 부분이 오류인데 입력값이 abcdefg 이런식으로 각기 다른 문자면 정상적으로 실행됩니다.
근데 abbbcccdddeeefff 이런식으로 같은 문자열이 중복으로 입력값으로 주어지면 실행은 abcdef 이런식으로 회전을 하게 됩니다.
즉 TrimLeft() 함수가 temp 주어진문자와 똑같은 문자를 모두 지워주기 때문에 발생되는 현상인거 같은데 해결방안이 있는지요.