MFC
MFC Editbox 자동 스크롤(자동 줄넘김)
불량껌
2009. 12. 11. 15:08
void CEditScrollDlg::OnAddBtn()
{
CString name_string, chat_string;
// 대화명에서 이름을 얻는다.
GetDlgItemText(IDC_NAME_EDIT, name_string);
// 채팅입력창에서 채팅정보를 얻는다.
GetDlgItemText(IDC_CHAT_EDIT, chat_string);
// 채팅목록을 관리할 에디트 컨트롤의 주소를 얻는다.
CEdit *p_edit = (CEdit *)GetDlgItem(IDC_CHAT_LIST_EDIT);
// 채팅 내용을 추가할때, CEdit 클래스의 ReplaceSel 이라는 함수를 사용하는데
// 이 함수는 에디트 컨트롤의 현재 커서 위치를 기준으로 문자열을 추가하기
// 때문에 사용자가 중간에 커서의 위치를 변경하고 채팅을 입력하면 잘못된
// 위치에 채팅 내용이 추가될수 있다. 따라서 채팅 내용을 항상 마지막에
// 추가하기 위해서 입력된 채팅 목록의 크기를 구하고 가장 마지막 위치에
// 커서를 설정하는 기능을 추가한다.
int string_length = p_edit->GetWindowTextLength();
// 입력된 문자열이 있는 경우, 문자열의 마지막 위치에 커서를 설정한다.
if(string_length > 0) p_edit->SetSel(string_length, string_length);
// 채팅 내용을 목록 에디트 컨트롤에 추가한다.
p_edit->ReplaceSel(name_string + " : " + chat_string);
// 줄바꿈 문자열을 추가하여 줄을 바꾼다.
p_edit->ReplaceSel("\r\n");
// 채팅입력란을 초기화 한다.
SetDlgItemText(IDC_CHAT_EDIT, "");
}
========================================================================================
빨간색 부분이 줄넘김 부분