Skip to content

CEdit

The CEdit class provides the functionality of a Windows edit control. An edit control is a rectangular child window in which the user can enter text.

Basic usage

CEdit에 있는 문자열 가져오기.

CEdit::GetWindowText();

CEdit에 있는 문자열의 길이 가져오기.

CEdit::GetLength();

CEdit에 문자열 입력하기.

CEdit::SetWindowText(text);

CEdit에 문자열 입력할 때 자동으로 스크롤되도록 하기.

int nLength = m_pEdit->GetWindowTextLength();
CEdit::SetSel(nLength, nLength);

CEdit 내용 전부를 지우기.

CEdit::SetSel(0, -1);
CEdit::Clear();

CEdit의 문자열이 총 라인수.

CEdit::GetLineCount();

라인의 글자 수.

CEdit::LineLength(linenumber);

원하는 라인의 첫번째 문자 인덱스 얻기.

CEdit::LineIndex(linenumber);

CEdit 박스 맨 앞에 문자 추가.

CEdit::SetSel(0, 0);
CEdit::ReplaceSel(text);

CEdit 문자열 용량 설정. //(최대 65536 까지 설정 가능)//

CEdit::SetLimitText(size);

읽기전용설정.

CEdit::SetReadOnly(boolean);

자동 스크롤 방법

멀티라인(Multiline) 에디트 컨트롤에서 마지막줄로 자동적으로 스크롤되는 방법은 아래와 같다.

CEdit::ReplaceSel();
CEdit::LineScroll(CEdit::GetLineCount());

Text Get/Set

CString str;
GetDlgItem(IDC_EDIT1)->GetWindowText(str);
GetDlgItem(IDC_EDIT3)->SetWindowText(str);

DDX Example

DDX를 활용할 경우 아래와 같이 사용 가능하다.

void CLiveDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialogEx::DoDataExchange(pDX);
    // ...
    DDX_Control(pDX, IDC_EDIT_LOG, m_edit2);
}
// ...
UpdateData();
m_edit2 = m_edit1;
UpdateData(FALSE);

Troubleshooting

CEdit 클래스 사용시 발생하는 문제점에 대한 해결방법

  • 멀티라인(ES_MULTILINE) 속성을 입력했을 경우 'Enter Key'가 입력되지 않을경우 스타일정보에 ES_WANTRETURN을 추가하면 된다.

See also

Favorite site