CEdit 클래스
Windows 편집 컨트롤의 기능을 제공합니다.
구문
class CEdit : public CWnd
멤버
공용 생성자
속성 | 설명 |
---|---|
CEdit::CEdit | 컨트롤 개체를 CEdit 생성합니다. |
공용 메서드
이름 | 설명 |
---|---|
CEdit::CanUndo | 편집 제어 작업을 실행 취소할 수 있는지 여부를 결정합니다. |
CEdit::CharFromPos | 지정된 위치에 가장 가까운 문자의 줄 및 문자 인덱스를 검색합니다. |
CEdit::Clear | 편집 컨트롤에서 현재 선택 영역(있는 경우)을 삭제(지웁니다). |
CEdit::Copy | 편집 컨트롤의 현재 선택 영역(있는 경우)을 CF_TEXT 형식으로 클립보드에 복사합니다. |
CEdit::Create | Windows 편집 컨트롤을 만들어 개체에 CEdit 연결합니다. |
CEdit::Cut | 편집 컨트롤에서 현재 선택 영역(있는 경우)을 삭제(잘라내기)하고 삭제된 텍스트를 CF_TEXT 형식으로 클립보드에 복사합니다. |
CEdit::EmptyUndoBuffer | 편집 컨트롤의 실행 취소 플래그를 다시 설정(지웁니다). |
CEdit::FmtLines | 여러 줄 편집 컨트롤 내에서 소프트 줄 바꿈 문자의 포함을 설정하거나 해제합니다. |
CEdit::GetCueBanner | 컨트롤이 비어 있고 포커스가 없는 경우 편집 컨트롤에서 텍스트 큐 또는 팁으로 표시되는 텍스트를 검색합니다. |
CEdit::GetFirstVisibleLine | 편집 컨트롤에서 가장 맨 위에 표시되는 줄을 결정합니다. |
CEdit::GetHandle | 다중 줄 편집 컨트롤에 대해 현재 할당된 메모리에 대한 핸들을 검색합니다. |
CEdit::GetHighlight | 현재 편집 컨트롤에서 강조 표시된 텍스트 범위에서 시작 문자와 끝 문자의 인덱스를 가져옵니다. |
CEdit::GetLimitText | 포함 CEdit 할 수 있는 최대 텍스트 양을 가져옵니다. |
CEdit::GetLine | 편집 컨트롤에서 텍스트 줄을 검색합니다. |
CEdit::GetLineCount | 여러 줄 편집 컨트롤의 줄 수를 검색합니다. |
CEdit::GetMargins | 에 CEdit 대한 왼쪽 및 오른쪽 여백을 가져옵니다. |
CEdit::GetModify | 편집 컨트롤의 내용이 수정되었는지 여부를 확인합니다. |
CEdit::GetPasswordChar | 사용자가 텍스트를 입력할 때 편집 컨트롤에 표시되는 암호 문자를 검색합니다. |
CEdit::GetRect | 편집 컨트롤의 서식 사각형을 가져옵니다. |
CEdit::GetSel | 편집 컨트롤에서 현재 선택 영역의 첫 번째 및 마지막 문자 위치를 가져옵니다. |
CEdit::HideBalloonTip | 현재 편집 컨트롤과 연결된 풍선 팁을 숨깁니다. |
CEdit::LimitText | 사용자가 편집 컨트롤에 입력할 수 있는 텍스트의 길이를 제한합니다. |
CEdit::LineFromChar | 지정된 문자 인덱스가 포함된 줄 번호를 검색합니다. |
CEdit::LineIndex | 여러 줄 편집 컨트롤 내에서 줄의 문자 인덱스를 검색합니다. |
CEdit::LineLength | 편집 컨트롤에서 줄의 길이를 검색합니다. |
CEdit::LineScroll | 여러 줄 편집 컨트롤의 텍스트를 스크롤합니다. |
CEdit::P aste | 클립보드의 데이터를 현재 커서 위치의 편집 컨트롤에 삽입합니다. 클립보드에 CF_TEXT 형식의 데이터가 포함된 경우에만 데이터가 삽입됩니다. |
CEdit::P osFromChar | 지정된 문자 인덱스의 왼쪽 위 모퉁이 좌표를 검색합니다. |
CEdit::ReplaceSel | 편집 컨트롤의 현재 선택 영역을 지정된 텍스트로 바꿉니다. |
CEdit::SetCueBanner | 컨트롤이 비어 있고 포커스가 없는 경우 편집 컨트롤에서 텍스트 큐 또는 팁으로 표시되는 텍스트를 설정합니다. |
CEdit::SetHandle | 여러 줄 편집 컨트롤에서 사용할 로컬 메모리로 핸들을 설정합니다. |
CEdit::SetHighlight | 현재 편집 컨트롤에 표시되는 텍스트 범위를 강조 표시합니다. |
CEdit::SetLimitText | 포함 CEdit 할 수 있는 최대 텍스트 양을 설정합니다. |
CEdit::SetMargins | 이에 CEdit 대한 왼쪽 및 오른쪽 여백을 설정합니다. |
CEdit::SetModify | 편집 컨트롤에 대한 수정 플래그를 설정하거나 지웁니다. |
CEdit::SetPasswordChar | 사용자가 텍스트를 입력할 때 편집 컨트롤에 표시되는 암호 문자를 설정하거나 제거합니다. |
CEdit::SetReadOnly | 편집 컨트롤의 읽기 전용 상태를 설정합니다. |
CEdit::SetRect | 여러 줄 편집 컨트롤의 서식 사각형을 설정하고 컨트롤을 업데이트합니다. |
CEdit::SetRectNP | 컨트롤 창을 다시 그리지 않고 여러 줄 편집 컨트롤의 서식 사각형을 설정합니다. |
CEdit::SetSel | 편집 컨트롤에서 문자 범위를 선택합니다. |
CEdit::SetTabStops | 여러 줄 편집 컨트롤에서 탭 정지를 설정합니다. |
CEdit::ShowBalloonTip | 현재 편집 컨트롤과 연결된 풍선 팁을 표시합니다. |
CEdit::Undo | 마지막 편집 제어 작업을 반대로 바뀝니다. |
설명
편집 컨트롤은 사용자가 텍스트를 입력할 수 있는 사각형 자식 창입니다.
대화 상자 템플릿에서 또는 코드에서 직접 편집 컨트롤을 만들 수 있습니다. 두 경우 모두 먼저 생성자를 CEdit
호출하여 개체를 CEdit
생성한 다음 멤버 만들기 함수를 호출하여 Windows 편집 컨트롤을 만들고 개체에 CEdit
연결합니다.
생성은 에서 파생된 CEdit
클래스의 1단계 프로세스일 수 있습니다. 파생 클래스에 대한 생성자를 작성하고 생성자 내에서 호출 Create
합니다.
CEdit
는 .에서 CWnd
중요한 기능을 상속합니다. 개체에서 CEdit
텍스트를 설정하고 검색하려면 여러 줄 컨트롤인 경우에도 편집 컨트롤의 전체 내용을 설정하거나 가져오는 멤버 함수 SetWindowText 및 GetWindowText를 사용합니다CWnd
. 여러 줄 컨트롤의 텍스트 줄은 '\r\n' 문자 시퀀스로 구분됩니다. 또한 편집 컨트롤이 여러 줄인 경우 멤버 함수 GetLine, SetSel, GetSel 및 ReplaceSel을 호출 CEdit
하여 컨트롤 텍스트의 일부를 가져와서 설정합니다.
편집 컨트롤에서 부모(일반적으로 파생된 CDialog
클래스)로 보낸 Windows 알림 메시지를 처리하려면 각 메시지에 대한 부모 클래스에 메시지 맵 항목 및 메시지 처리기 멤버 함수를 추가합니다.
각 메시지 맵 항목은 다음 형식을 사용합니다.
ON_NOTIFICATION( id, memberFxn )
여기서 id
는 알림을 보내는 편집 컨트롤의 자식 창 ID를 지정하고 memberFxn
알림을 처리하기 위해 작성한 부모 멤버 함수의 이름입니다.
부모의 함수 프로토타입은 다음과 같습니다.
afx_msg void memberFxn ( );
다음은 잠재적인 메시지 맵 항목 목록과 부모로 전송되는 사례에 대한 설명입니다.
ON_EN_CHANGE 사용자가 편집 컨트롤에서 텍스트를 변경했을 수 있는 작업을 수행했습니다. EN_UPDATE 알림 메시지와 달리 이 알림 메시지는 Windows에서 디스플레이를 업데이트한 후에 전송됩니다.
ON_EN_ERRSPACE 편집 컨트롤은 특정 요청을 충족하기에 충분한 메모리를 할당할 수 없습니다.
ON_EN_HSCROLL 사용자가 편집 컨트롤의 가로 스크롤 막대를 클릭합니다. 화면이 업데이트되기 전에 부모 창에 알립니다.
ON_EN_KILLFOCUS 편집 컨트롤이 입력 포커스를 잃습니다.
ON_EN_MAXTEXT 현재 삽입이 편집 컨트롤에 대해 지정된 문자 수를 초과하여 잘렸습니다. 또한 편집 컨트롤에 ES_AUTOHSCROLL 스타일이 없으며 삽입할 문자 수가 편집 컨트롤의 너비를 초과하는 경우에도 전송됩니다. 또한 편집 컨트롤에 ES_AUTOVSCROLL 스타일이 없으며 텍스트 삽입으로 인한 총 줄 수가 편집 컨트롤의 높이를 초과하는 경우에도 전송됩니다.
ON_EN_SETFOCUS 편집 컨트롤이 입력 포커스를 받을 때 전송됩니다.
ON_EN_UPDATE 편집 컨트롤이 변경된 텍스트를 표시하려고 합니다. 컨트롤이 텍스트의 서식을 지정한 후 전송되지만, 필요한 경우 창 크기를 변경할 수 있도록 텍스트를 차단하기 전에 전송됩니다.
ON_EN_VSCROLL 사용자가 편집 컨트롤의 세로 스크롤 막대를 클릭합니다. 화면이 업데이트되기 전에 부모 창에 알립니다.
대화 상자 내에서 개체를 CEdit
만들면 사용자가 대화 상자를 CEdit
닫으면 개체가 자동으로 제거됩니다.
대화 상자 편집 CEdit
기를 CEdit
사용하여 대화 상자 리소스에서 개체를 만들면 사용자가 대화 상자를 닫으면 개체가 자동으로 제거됩니다.
창 내에서 개체를 CEdit
만드는 경우 개체를 삭제해야 할 수도 있습니다. 스택에서 개체를 CEdit
만들면 자동으로 제거됩니다. 함수를 CEdit
사용하여 힙에 개체를 new
만드는 경우 사용자가 Windows 편집 컨트롤을 종료할 때 개체를 호출 delete
하여 삭제해야 합니다. 개체에 메모리를 CEdit
할당하는 경우 소멸자를 재정 CEdit
의하여 할당을 삭제합니다.
편집 컨트롤의 특정 스타일(예: ES_READONLY)을 수정하려면 ModifyStyle을 사용하는 대신 컨트롤에 특정 메시지를 보내야 합니다. Windows SDK에서 컨트롤 스타일 편집을 참조하세요.
자세한 CEdit
내용은 컨트롤을 참조 하세요.
상속 계층 구조
CEdit
요구 사항
헤더: afxwin.h
CEdit::CanUndo
이 함수를 호출하여 마지막 편집 작업을 실행 취소할 수 있는지 확인합니다.
BOOL CanUndo() const;
Return Value
멤버 함수를 호출 Undo
하여 마지막 편집 작업을 실행 취소할 수 있으면 0이 아니고, 실행 취소할 수 없는 경우 0입니다.
설명
자세한 내용은 Windows SDK의 EM_CANUNDO 참조하세요.
예시
CEdit::Undo에 대한 예제를 참조하세요.
CEdit::CEdit
CEdit
개체를 생성합니다.
CEdit();
설명
Create를 사용하여 Windows 편집 컨트롤을 생성합니다.
예시
// Declare a local CEdit object.
CEdit myEdit;
// Declare a dynamic CEdit object.
CEdit *pmyEdit = new CEdit;
CEdit::CharFromPos
이 함수를 호출하여 이 CEdit
컨트롤에서 지정된 지점에 가장 가까운 문자의 0부터 시작하는 줄과 문자 인덱스를 검색합니다.
int CharFromPos(CPoint pt) const;
매개 변수
pt
이 CEdit
개체의 클라이언트 영역에 있는 점의 좌표입니다.
Return Value
낮은 순서 WORD의 문자 인덱스 및 상위 WORD의 줄 인덱스입니다.
설명
참고 항목
이 멤버 함수는 Windows 95 및 Windows NT 4.0부터 사용할 수 있습니다.
자세한 내용은 Windows SDK의 EM_CHARFROMPOS 참조하세요.
예시
// CMyEdit inherits from CEdit
void CMyEdit::OnLButtonDown(UINT nFlags, CPoint point)
{
int n = CharFromPos(point);
int nLineIndex = HIWORD(n);
int nCharIndex = LOWORD(n);
TRACE(_T("nLineIndex = %d, nCharIndex = %d\r\n"), nLineIndex, nCharIndex);
CEdit::OnLButtonDown(nFlags, point);
}
CEdit::Clear
편집 컨트롤에서 현재 선택 영역(있는 경우)을 삭제(지우기)하려면 이 함수를 호출합니다.
void Clear();
설명
실행 취소 멤버 함수를 호출하여 수행된 Clear
삭제를 실행 취소 할 수 있습니다.
현재 선택 영역을 삭제하고 삭제된 내용을 클립보드에 배치하려면 Cut 멤버 함수를 호출합니다.
자세한 내용은 Windows SDK의 WM_CLEAR 참조하세요.
예시
// Delete all of the text.
m_myEdit.SetSel(0, -1);
m_myEdit.Clear();
CEdit::Copy
편집 컨트롤의 현재 선택 영역(있는 경우)을 CF_TEXT 형식으로 클립보드에 연결하려면 이 함수를 호출합니다.
void Copy();
설명
자세한 내용은 Windows SDK의 WM_COPY 참조하세요.
예시
// Copy all of the text to the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Copy();
CEdit::Create
Windows 편집 컨트롤을 만들어 개체에 CEdit
연결합니다.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
매개 변수
dwStyle
편집 컨트롤의 스타일을 지정합니다. 편집 스타일의 조합을 컨트롤에 적용합니다.
rect
편집 컨트롤의 크기와 위치를 지정합니다. 개체 또는 RECT
구조체일 CRect
수 있습니다.
pParentWnd
편집 컨트롤의 부모 창(일반적으로 )을 CDialog
지정합니다. NULL이 아니어야 합니다.
nID
편집 컨트롤의 ID를 지정합니다.
Return Value
초기화에 성공하면 0이 아닌 값입니다. 그렇지 않으면 0입니다.
설명
두 단계로 개체를 CEdit
생성합니다. 먼저 생성자를 호출한 CEdit
다음 호출 Create
합니다. 그러면 Windows 편집 컨트롤이 만들어지고 개체에 CEdit
연결됩니다.
실행되면 Create
Windows는 WM_NCCREATE, WM_NCCALCSIZE, WM_CREATE 및 WM_GETMINMAXINFO 메시지를 편집 컨트롤에 보냅니다.
이러한 메시지는 기본 클래스의 OnNcCreate, OnNcCalcSize, OnCreate 및 OnGetMinMaxInfo 멤버 함수에 CWnd
의해 기본적으로 처리됩니다. 기본 메시지 처리를 확장하려면 클래스 CEdit
를 파생시키고, 새 클래스에 메시지 맵을 추가하고, 위의 메시지 처리기 멤버 함수를 재정의합니다. 예를 들어 새 클래스에 필요한 초기화를 수행하려면 재정 OnCreate
의합니다.
편집 컨트롤에 다음 창 스타일을 적용합니다.
WS_CHILD Always
WS_VISIBLE 일반적으로
WS_DISABLED 드물게
WS_GROUP 컨트롤을 그룹화하려면
WS_TABSTOP 편집 컨트롤을 탭 순서에 포함하려면
예시
// dynamically create an edit control
CEdit *pEdit = new CEdit;
pEdit->Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,
CRect(10, 10, 100, 100), this, 1);
CEdit::Cut
편집 컨트롤에서 현재 선택 영역을 삭제(있는 경우)하고 삭제된 텍스트를 클립보드에 CF_TEXT 형식으로 복사하려면 이 함수를 호출합니다.
void Cut();
설명
실행 취소 멤버 함수를 호출하여 수행된 Cut
삭제를 실행 취소 할 수 있습니다.
삭제된 텍스트를 클립보드에 배치하지 않고 현재 선택 영역을 삭제하려면 Clear 멤버 함수를 호출합니다.
자세한 내용은 Windows SDK의 WM_CUT 참조하세요.
예시
// Delete all of the text and copy it to the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Cut();
CEdit::EmptyUndoBuffer
편집 컨트롤의 실행 취소 플래그를 다시 설정(지우기)하려면 이 함수를 호출합니다.
void EmptyUndoBuffer();
설명
이제 편집 컨트롤이 마지막 작업을 실행 취소할 수 없습니다. 편집 컨트롤 내의 작업을 실행 취소할 수 있을 때마다 실행 취소 플래그가 설정됩니다.
SetWindowText 또는 SetHandleCWnd
멤버 함수가 호출될 때마다 실행 취소 플래그가 자동으로 지워집니다.
자세한 내용은 Windows SDK의 EM_EMPTYUNDOBUFFER 참조하세요.
예시
// Clear the undo buffer.
if (m_myEdit.CanUndo())
{
m_myEdit.EmptyUndoBuffer();
ASSERT(!m_myEdit.CanUndo());
}
CEdit::FmtLines
이 함수를 호출하여 여러 줄 편집 컨트롤 내에서 소프트 줄 바꿈 문자의 포함을 설정하거나 해제합니다.
BOOL FmtLines(BOOL bAddEOL);
매개 변수
bAddEOL
소프트 줄 바꿈 문자를 삽입할지 여부를 지정합니다. TRUE 값은 문자를 삽입합니다. FALSE 값은 제거합니다.
Return Value
서식이 있는 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
부드러운 줄 바꿈은 두 개의 캐리지 리턴과 줄 바꿈으로 인해 끊어진 줄 끝에 삽입된 줄 바꿈으로 구성됩니다. 하드 줄 바꿈(line break)은 하나의 캐리지 리턴과 줄 바꿈(line feed)으로 구성됩니다. 줄 바꿈으로 끝나는 줄은 .의 영향을 FmtLines
받지 않습니다.
Windows는 개체가 CEdit
여러 줄 편집 컨트롤인 경우에만 응답합니다.
FmtLines
는 GetHandle에서 반환된 버퍼와 WM_GETTEXT 반환된 텍스트에만 영향을 줍니다. 편집 컨트롤 내의 텍스트 표시에는 영향을 주지 않습니다.
자세한 내용은 Windows SDK의 EM_FMTLINES 참조하세요.
예시
CString strText;
// Add soft line-break breaks.
m_myEdit.FmtLines(TRUE);
// Dump the text of the edit control.
m_myEdit.GetWindowText(strText);
AFXDUMP(strText);
// Remove soft line-break breaks.
m_myEdit.FmtLines(FALSE);
CEdit::GetCueBanner
컨트롤이 비어 있을 때 편집 컨트롤에서 텍스트 큐 또는 팁으로 표시되는 텍스트를 검색합니다.
BOOL GetCueBanner(
LPWSTR lpszText,
int cchText) const;
CString GetCueBanner() const;
매개 변수
lpszText
[out] 큐 텍스트가 포함된 문자열에 대한 포인터입니다.
cchText
[in] 받을 수 있는 문자 수입니다. 이 숫자에는 종료 NULL 문자가 포함됩니다.
Return Value
첫 번째 오버로드의 경우 메서드가 성공하면 TRUE입니다. 그렇지 않으면 FALSE입니다.
두 번째 오버로드 의 경우 메서드가 성공하면 큐 텍스트를 포함하는 CString 이고, 그렇지 않으면 빈 문자열("")입니다.
설명
이 메서드는 Windows SDK에 설명된 EM_GETCUEBANNER 메시지를 보냅니다. 자세한 내용은 Edit_GetCueBannerText 매크로를 참조하세요.
CEdit::GetFirstVisibleLine
편집 컨트롤에서 맨 위에 표시되는 줄을 확인하려면 이 함수를 호출합니다.
int GetFirstVisibleLine() const;
Return Value
맨 위에 표시되는 선의 인덱스(0부터 시작하는 인덱스)입니다. 한 줄 편집 컨트롤의 경우 반환 값은 0입니다.
설명
자세한 내용은 Windows SDK의 EM_GETFIRSTVISIBLELINE 참조하세요.
예시
int nFirstVisible = m_myEdit.GetFirstVisibleLine();
// Scroll the edit control so that the first visible line
// is the first line of text.
if (nFirstVisible > 0)
{
m_myEdit.LineScroll(-nFirstVisible, 0);
}
CEdit::GetHandle
이 함수를 호출하여 다중 줄 편집 컨트롤에 현재 할당된 메모리에 대한 핸들을 검색합니다.
HLOCAL GetHandle() const;
Return Value
편집 컨트롤의 내용을 포함하는 버퍼를 식별하는 로컬 메모리 핸들입니다. 메시지를 한 줄 편집 컨트롤로 보내는 것과 같은 오류가 발생하면 반환 값은 0입니다.
설명
핸들은 로컬 메모리 핸들이며 로컬 메모리 핸들을 매개 변수로 사용하는 로컬 Windows 메모리 함수에서 사용할 수 있습니다.
GetHandle
는 여러 줄 편집 컨트롤에 의해서만 처리됩니다.
DS_LOCALEDIT 스타일 플래그가 설정된 대화 상자를 만든 경우에만 대화 상자에서 여러 줄 편집 컨트롤을 호출 GetHandle
합니다. DS_LOCALEDIT 스타일이 설정되지 않은 경우에도 0이 아닌 반환 값이 표시되지만 반환된 값을 사용할 수는 없습니다.
참고 항목
GetHandle
는 Windows 95/98에서 작동하지 않습니다. Windows 95/98에서 호출 GetHandle
하면 NULL이 반환됩니다. GetHandle
는 Windows NT 버전 3.51 이상에 설명된 대로 작동합니다.
자세한 내용은 Windows SDK의 EM_GETHANDLE 참조하세요.
예시
HLOCAL h = m_myEdit.GetHandle();
LPCTSTR lpszText = (LPCTSTR)::LocalLock(h);
// Dump the text of the edit control.
AFXDUMP(lpszText);
::LocalUnlock(h);
CEdit::GetHighlight
현재 편집 컨트롤에서 강조 표시된 텍스트 범위에서 첫 문자와 마지막 문자의 인덱스를 가져옵니다.
BOOL GetHighlight(
int* pichStart,
int* pichEnd) const;
매개 변수
pichStart
[out] 강조 표시된 텍스트 범위에서 첫 번째 문자의 인덱스(0부터 시작)입니다.
pichEnd
[out] 강조 표시된 텍스트 범위에서 마지막 문자의 인덱스(0부터 시작하는 인덱스)입니다.
Return Value
이 메서드가 성공하면 TRUE입니다. 그렇지 않으면 FALSE입니다.
설명
이 메서드는 Windows SDK에 설명된 EM_GETHILITE 메시지를 보냅니다. 둘 다 SetHighlight
현재 GetHighlight
UNICODE 빌드에만 사용하도록 설정되어 있습니다.
CEdit::GetLimitText
이 멤버 함수를 호출하여 이 CEdit
개체의 텍스트 제한을 가져옵니다.
UINT GetLimitText() const;
Return Value
이 CEdit
개체의 현재 텍스트 제한(TCHAR)입니다.
설명
텍스트 제한은 편집 컨트롤에서 허용할 수 있는 TCHAR의 최대 텍스트 양입니다.
참고 항목
이 멤버 함수는 Windows 95 및 Windows NT 4.0부터 사용할 수 있습니다.
자세한 내용은 Windows SDK의 EM_GETLIMITTEXT 참조하세요.
예시
CString strText(_T("I'm an edit control!"));
UINT nLength = strText.GetLength() * sizeof(TCHAR);
// Want the text limit to be at least the size of the new string.
if (m_myEdit.GetLimitText() < nLength)
m_myEdit.SetLimitText(nLength);
m_myEdit.SetWindowText(strText);
CEdit::GetLine
편집 컨트롤에서 텍스트 줄을 검색하여 lpszBuffer에 배치하려면 이 함수를 호출합니다.
int GetLine(
int nIndex,
LPTSTR lpszBuffer) const;
int GetLine(
int nIndex,
LPTSTR lpszBuffer,
int nMaxLength) const;
매개 변수
nIndex
여러 줄 편집 컨트롤에서 검색할 줄 번호를 지정합니다. 줄 번호는 0부터 시작하는 값입니다. 값이 0이면 첫 번째 줄이 지정됩니다. 이 매개 변수는 한 줄 편집 컨트롤에서 무시됩니다.
lpszBuffer
줄의 복사본을 받는 버퍼를 가리킵니다. 버퍼의 첫 번째 단어는 버퍼에 복사할 수 있는 최대 TCHAR 수를 지정해야 합니다.
nMaxLength
버퍼에 복사할 수 있는 최대 TCHAR 문자 수를 지정합니다. GetLine
는 Windows를 호출하기 전에 lpszBuffer의 첫 번째 단어에 이 값을 배치합니다.
Return Value
실제로 복사된 문자 수입니다. nIndex에서 지정한 줄 번호가 편집 컨트롤의 줄 수보다 큰 경우 반환 값은 0입니다.
설명
복사된 줄에 null 종료 문자가 포함되어 있지 않습니다.
자세한 내용은 Windows SDK의 EM_GETLINE 참조하세요.
예시
CEdit::GetLineCount에 대한 예제를 참조하세요.
CEdit::GetLineCount
이 함수를 호출하여 여러 줄 편집 컨트롤의 줄 수를 검색합니다.
int GetLineCount() const;
Return Value
여러 줄 편집 컨트롤의 줄 수를 포함하는 정수입니다. 편집 컨트롤에 텍스트가 입력되지 않은 경우 반환 값은 1입니다.
설명
GetLineCount
는 여러 줄 편집 컨트롤에서만 처리됩니다.
자세한 내용은 Windows SDK의 EM_GETLINECOUNT 참조하세요.
예시
int i, nLineCount = m_myEdit.GetLineCount();
CString strText, strLine;
// Dump every line of text of the edit control.
for (i = 0; i < nLineCount; i++)
{
// length of line i:
int len = m_myEdit.LineLength(m_myEdit.LineIndex(i));
m_myEdit.GetLine(i, strText.GetBuffer(len), len);
strText.ReleaseBuffer(len);
strLine.Format(_T("line %d: '%s'\n"), i, strText);
AFXDUMP(strLine);
}
CEdit::GetMargins
이 편집 컨트롤의 왼쪽 및 오른쪽 여백을 검색하려면 이 멤버 함수를 호출합니다.
DWORD GetMargins() const;
Return Value
낮은 순서 WORD의 왼쪽 여백 너비와 상위 WORD에서 오른쪽 여백의 너비입니다.
설명
여백은 픽셀 단위로 측정됩니다.
참고 항목
이 멤버 함수는 Windows 95 및 Windows NT 4.0부터 사용할 수 있습니다.
자세한 내용은 Windows SDK의 EM_GETMARGINS 참조하세요.
예시
CEditView::GetEditCtrl에 대한 예제를 참조하세요.
CEdit::GetModify
편집 컨트롤의 내용이 수정되었는지 여부를 확인하려면 이 함수를 호출합니다.
BOOL GetModify() const;
Return Value
편집 컨트롤 내용이 수정된 경우 0이 아닌 경우 변경되지 않은 상태로 유지된 경우 0입니다.
설명
Windows는 편집 컨트롤의 내용이 변경되었는지 여부를 나타내는 내부 플래그를 유지 관리합니다. 이 플래그는 편집 컨트롤을 처음 만들 때 지워지고 SetModify 멤버 함수를 호출하여 지울 수도 있습니다.
자세한 내용은 Windows SDK의 EM_GETMODIFY 참조하세요.
예시
// Reset the modified state only if my edit has been modified.
if (m_myEdit.GetModify())
m_myEdit.SetModify(FALSE);
CEdit::GetPasswordChar
이 함수를 호출하여 사용자가 텍스트를 입력할 때 편집 컨트롤에 표시되는 암호 문자를 검색합니다.
TCHAR GetPasswordChar() const;
Return Value
사용자가 입력한 문자 대신 표시할 문자를 지정합니다. 암호 문자가 없는 경우 반환 값은 NULL입니다.
설명
ES_PASSWORD 스타일로 편집 컨트롤을 만드는 경우 컨트롤을 지원하는 DLL에 따라 기본 암호 문자가 결정됩니다. 매니페스트 또는 InitCommonControlsEx 메서드는 편집 컨트롤을 지원하는 DLL을 결정합니다. user32.dll 편집 컨트롤을 지원하는 경우 기본 암호 문자는 ASTERISK('*', U+002A)입니다. comctl32.dll 버전 6이 편집 컨트롤을 지원하는 경우 기본 문자는 BLACK CIRCLE('●', U+25CF)입니다. 공용 컨트롤을 지원하는 DLL 및 버전에 대한 자세한 내용은 셸 및 공용 컨트롤 버전을 참조 하세요.
이 메서드는 Windows SDK에 설명된 EM_GETPASSWORDCHAR 메시지를 보냅니다.
예시
// Turn on the password mode.
m_myEdit.SetPasswordChar('*');
ASSERT(m_myEdit.GetStyle() & ES_PASSWORD);
ASSERT(m_myEdit.GetPasswordChar() == '*');
CEdit::GetRect
이 함수를 호출하여 편집 컨트롤의 서식 사각형을 가져옵니다.
void GetRect(LPRECT lpRect) const;
매개 변수
lpRect
서식 사각형을 RECT
받는 구조를 가리킵니다.
설명
서식 지정 사각형은 편집 제어 창의 크기와 무관한 텍스트의 제한 사각형입니다.
여러 줄 편집 컨트롤의 서식 지정 사각형은 SetRect 및 SetRectNP 멤버 함수를 통해 수정할 수 있습니다.
자세한 내용은 Windows SDK의 EM_GETRECT 참조하세요.
예시
CEdit::LimitText에 대한 예제를 참조하세요.
CEdit::GetSel
이 함수를 호출하여 반환 값 또는 매개 변수를 사용하여 편집 컨트롤에서 현재 선택 영역의 시작 및 끝 문자 위치(있는 경우)를 가져옵니다.
DWORD GetSel() const;
void GetSel(
int& nStartChar,
int& nEndChar) const;
매개 변수
nStartChar
현재 선택 영역에서 첫 번째 문자의 위치를 받을 정수에 대한 참조입니다.
nEndChar
현재 선택 영역의 끝을 지나 첫 번째 선택되지 않은 문자의 위치를 받을 정수에 대한 참조입니다.
Return Value
DWORD를 반환하는 버전은 하위 단어의 시작 위치와 상위 단어에서 선택 영역이 끝난 후 선택되지 않은 첫 번째 문자의 위치를 포함하는 값을 반환합니다.
설명
자세한 내용은 Windows SDK의 EM_GETSEL 참조하세요.
예시
// Set the selection to be all characters after the current selection.
DWORD dwSel = m_myEdit.GetSel();
m_myEdit.SetSel(HIWORD(dwSel), -1);
CEdit::HideBalloonTip
현재 편집 컨트롤과 연결된 풍선 팁을 숨깁니다.
BOOL HideBalloonTip();
Return Value
이 메서드가 성공하면 TRUE입니다. 그렇지 않으면 FALSE입니다.
설명
이 함수는 Windows SDK에 설명된 EM_HIDEBALLOONTIP 메시지를 보냅니다.
CEdit::LimitText
이 함수를 호출하여 사용자가 편집 컨트롤에 입력할 수 있는 텍스트의 길이를 제한합니다.
void LimitText(int nChars = 0);
매개 변수
nChars
사용자가 입력할 수 있는 텍스트의 길이(TCHAR)를 지정합니다. 이 매개 변수가 0이면 텍스트 길이가 UINT_MAX 바이트로 설정됩니다. 이 옵션은 기본 동작입니다.
설명
텍스트 제한을 변경하면 사용자가 입력할 수 있는 텍스트만 제한됩니다. 편집 컨트롤에 이미 있는 텍스트에는 영향을 주지 않으며 SetWindowText 멤버 함수CWnd
가 편집 컨트롤에 복사한 텍스트의 길이에도 영향을 주지 않습니다. 애플리케이션이 함수를 SetWindowText
사용하여 호출에서 지정한 것보다 더 많은 텍스트를 편집 컨트롤에 배치하는 LimitText
경우 사용자는 편집 컨트롤 내의 텍스트를 삭제할 수 있습니다. 그러나 현재 선택 영역을 삭제하면 텍스트가 텍스트 제한 아래로 떨어지지 않는 한 텍스트 제한으로 인해 기존 텍스트를 새 텍스트로 바꿀 수 없습니다.
참고 항목
Win32(Windows NT 및 Windows 95/98) 에서 SetLimitText 는 이 함수를 대체합니다.
자세한 내용은 Windows SDK의 EM_LIMITTEXT 참조하세요.
예시
// Limit the number of characters to be the maximum number visible.
// Get the text metrics for the edit; needed for the
// average character width.
TEXTMETRIC tm;
CDC *pDC = m_myEdit.GetDC();
pDC->GetTextMetrics(&tm);
m_myEdit.ReleaseDC(pDC);
CRect r;
m_myEdit.GetRect(&r);
m_myEdit.LimitText(r.Width() / tm.tmAveCharWidth);
CEdit::LineFromChar
이 함수를 호출하여 지정된 문자 인덱스가 포함된 줄의 줄 번호를 검색합니다.
int LineFromChar(int nIndex = -1) const;
매개 변수
nIndex
편집 컨트롤의 텍스트에서 원하는 문자에 대한 인덱스 값(0부터 시작하는 인덱스)을 포함하거나 -1을 포함합니다. nIndex가 -1이면 현재 줄, 즉 캐리트가 포함된 줄을 지정합니다.
Return Value
nIndex에서 지정한 문자 인덱스를 포함하는 줄의 0부터 시작하는 줄 번호입니다. nIndex가 -1이면 선택 영역의 첫 번째 문자가 포함된 줄의 수가 반환됩니다. 선택 항목이 없으면 현재 줄 번호가 반환됩니다.
설명
문자 인덱스는 편집 컨트롤의 시작 부분부터의 문자 수입니다.
이 멤버 함수는 여러 줄 편집 컨트롤에서만 사용됩니다.
자세한 내용은 Windows SDK의 EM_LINEFROMCHAR 참조하세요.
예시
// The index of the char to get information on.
int nIndex = 4;
CString strText;
m_myEdit.GetWindowText(strText);
strText = strText.Mid(nIndex, 1);
// Get the text extent of the character.
CDC *pDC = m_myEdit.GetDC();
CSize sz = pDC->GetTextExtent(strText);
m_myEdit.ReleaseDC(pDC);
CPoint pt = m_myEdit.PosFromChar(nIndex);
// Dump the index, character, line number, and character bounds.
TRACE(_T("nIndex = %d, character = %c, line = %d, bounds = ")
_T("{%d, %d, %d, %d}\r\n"),
nIndex, strText[0], m_myEdit.LineFromChar(nIndex),
pt.x /* left */, pt.y /* top */,
pt.x + sz.cx /* right */, pt.y + sz.cy /* bottom */);
CEdit::LineIndex
이 함수를 호출하여 여러 줄 편집 컨트롤 내에서 줄의 문자 인덱스를 검색합니다.
int LineIndex(int nLine = -1) const;
매개 변수
nLine
편집 컨트롤의 텍스트에 원하는 줄의 인덱스 값을 포함하거나 -1을 포함합니다. nLine이 -1이면 현재 줄, 즉 캐리트가 포함된 줄을 지정합니다.
Return Value
nLine에 지정된 줄의 문자 인덱스 이거나, 지정한 줄 번호가 편집 컨트롤의 줄 수보다 큰 경우 -1입니다.
설명
문자 인덱스는 편집 컨트롤의 시작 부분에서 지정된 줄까지의 문자 수입니다.
이 멤버 함수는 여러 줄 편집 컨트롤에서만 처리됩니다.
자세한 내용은 Windows SDK의 EM_LINEINDEX 참조하세요.
예시
// The string for replacing.
CString strString(_T("Hi, we're the replacements."));
int nBegin, nEnd;
// Replace the second line, if it exists, of the edit control
// with the text strString.
if ((nBegin = m_myEdit.LineIndex(1)) != -1)
{
nEnd = nBegin + m_myEdit.LineLength(nBegin);
m_myEdit.SetSel(nBegin, nEnd);
m_myEdit.ReplaceSel(strString);
}
CEdit::LineLength
편집 컨트롤에서 줄의 길이를 검색합니다.
int LineLength(int nLine = -1) const;
매개 변수
nLine
길이를 검색할 줄에 있는 문자의 인덱스(0부터 시작)입니다. 기본값은 -1입니다.
Return Value
한 줄 편집 컨트롤의 경우 반환 값은 편집 컨트롤의 텍스트 길이( TCHAR)입니다.
여러 줄 편집 컨트롤의 경우 반환 값은 nLine 매개 변수로 지정된 줄의 길이(TCHAR)입니다. ANSI 텍스트의 경우 길이는 줄의 바이트 수입니다. 유니코드 텍스트의 경우 길이는 줄의 문자 수입니다. 길이는 줄 끝에 캐리지 리턴 문자를 포함하지 않습니다.
nLine 매개 변수가 컨트롤의 문자 수보다 많으면 반환 값은 0입니다.
nLine 매개 변수가 -1이면 반환 값은 선택한 문자가 포함된 줄에서 선택되지 않은 문자의 수입니다. 예를 들어 선택 영역이 한 줄의 네 번째 문자에서 다음 줄의 끝에서 여덟 번째 문자까지 확장되는 경우 반환 값은 10입니다. 즉, 첫 번째 줄에는 3자, 다음 줄에는 7자가 있습니다.
TCHAR 형식에 대한 자세한 내용은 Windows 데이터 형식 표의 TCHAR 행을 참조하세요.
설명
이 메서드는 Windows SDK에 설명된 EM_LINELENGTH 메시지에서 지원됩니다.
예시
CEdit::LineIndex에 대한 예제를 참조하세요.
CEdit::LineScroll
이 함수를 호출하여 여러 줄 편집 컨트롤의 텍스트를 스크롤합니다.
void LineScroll(
int nLines,
int nChars = 0);
매개 변수
nLines
세로로 스크롤할 줄 수를 지정합니다.
nChars
가로로 스크롤할 문자 위치 수를 지정합니다. 편집 컨트롤에 ES_RIGHT 또는 ES_CENTER 스타일이 있으면 이 값이 무시됩니다.
설명
이 멤버 함수는 여러 줄 편집 컨트롤에서만 처리됩니다.
편집 컨트롤은 편집 컨트롤의 마지막 텍스트 줄을 세로로 스크롤하지 않습니다. 현재 줄과 nLines로 지정된 줄 수가 편집 컨트롤의 총 줄 수를 초과하면 편집 컨트롤의 마지막 줄이 편집 컨트롤 창의 맨 위로 스크롤되도록 값이 조정됩니다.
LineScroll
는 모든 줄의 마지막 문자를 가로로 스크롤하는 데 사용할 수 있습니다.
자세한 내용은 Windows SDK의 EM_LINESCROLL 참조하세요.
예시
CEdit::GetFirstVisibleLine에 대한 예제를 참조하세요.
CEdit::P aste
클립보드 CEdit
의 데이터를 삽입 지점에 삽입하려면 이 함수를 호출합니다.
void Paste();
설명
클립보드에 CF_TEXT 형식의 데이터가 포함된 경우에만 데이터가 삽입됩니다.
자세한 내용은 Windows SDK의 WM_PASTE 참조하세요.
예시
// Replace all of the text with the text in the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Paste();
CEdit::P osFromChar
이 함수를 호출하여 이 CEdit
개체 내에서 지정된 문자의 위치(왼쪽 위 모서리)를 가져옵니다.
CPoint PosFromChar(UINT nChar) const;
매개 변수
nChar
지정된 문자의 인덱스(0부터 시작하는 인덱스)입니다.
Return Value
nChar로 지정된 문자의 왼쪽 위 모서리 좌표입니다.
설명
문자는 0부터 시작하는 인덱스 값을 제공하여 지정됩니다. nChar가 이 개체의 마지막 문자 인덱스보다 크면 반환 값은 이 CEdit
CEdit
개체의 마지막 문자 바로 앞에 있는 문자 위치의 좌표를 지정합니다.
참고 항목
이 멤버 함수는 Windows 95 및 Windows NT 4.0부터 사용할 수 있습니다.
자세한 내용은 Windows SDK의 EM_POSFROMCHAR 참조하세요.
예시
CEdit::LineFromChar에 대한 예제를 참조하세요.
CEdit::ReplaceSel
편집 컨트롤의 현재 선택 영역을 lpszNewText로 지정된 텍스트로 바꾸려면 이 함수를 호출합니다.
void ReplaceSel(LPCTSTR lpszNewText, BOOL bCanUndo = FALSE);
매개 변수
lpszNewText
대체 텍스트가 포함된 null로 끝나는 문자열을 가리킵니다.
bCanUndo
이 함수를 실행 취소할 수 있도록 지정하려면 이 매개 변수의 값을 TRUE로 설정합니다. 기본값은 FALSE입니다.
설명
편집 컨트롤에서 텍스트의 일부만 바꿉니다. 모든 텍스트를 바꾸려면 CWnd::SetWindowText 멤버 함수를 사용합니다.
현재 선택 영역이 없으면 현재 커서 위치에 대체 텍스트가 삽입됩니다.
자세한 내용은 Windows SDK의 EM_REPLACESEL 참조하세요.
예시
CEdit::LineIndex에 대한 예제를 참조하세요.
CEdit::SetCueBanner
컨트롤이 비어 있을 때 편집 컨트롤에 텍스트 큐 또는 팁으로 표시되는 텍스트를 설정합니다.
BOOL SetCueBanner(LPCWSTR lpszText);
BOOL SetCueBanner(
LPCWSTR lpszText,
BOOL fDrawWhenFocused = FALSE);
매개 변수
lpszText
[in] 편집 컨트롤에 표시할 큐가 포함된 문자열에 대한 포인터입니다.
fDrawWhenFocused
[in] FALSE이면 사용자가 편집 컨트롤을 클릭하고 컨트롤에 포커스를 제공할 때 큐 배너가 그려지지 않습니다.
TRUE이면 컨트롤에 포커스가 있는 경우에도 큐 배너가 그려집니다. 사용자가 컨트롤에 입력하기 시작하면 큐 배너가 사라집니다.
기본값은 FALSE입니다.
Return Value
메서드가 성공하면 TRUE입니다. 그렇지 않으면 FALSE입니다.
설명
이 메서드는 Windows SDK에 설명된 EM_SETCUEBANNER 메시지를 보냅니다. 자세한 내용은 Edit_SetCueBannerTextFocused 매크로를 참조하세요.
예시
다음 예제에서는 CEdit::SetCueBanner 메서드를 보여 줍니다.
m_cedit.SetCueBanner(_T("First, enter text here..."), TRUE);
CEdit::SetHandle
이 함수를 호출하여 다중 줄 편집 컨트롤에서 사용할 로컬 메모리로 핸들을 설정합니다.
void SetHandle(HLOCAL hBuffer);
매개 변수
hBuffer
로컬 메모리에 대한 핸들을 포함합니다. 이 핸들은 LMEM_MOVEABLE 플래그를 사용하여 LocalAlloc Windows 함수에 대한 이전 호출에 의해 만들어졌어야 합니다. 메모리는 null로 끝나는 문자열을 포함하는 것으로 간주됩니다. 그렇지 않은 경우 할당된 메모리의 첫 번째 바이트를 0으로 설정해야 합니다.
설명
그런 다음 편집 컨트롤은 이 버퍼를 사용하여 자체 버퍼를 할당하는 대신 현재 표시된 텍스트를 저장합니다.
이 멤버 함수는 여러 줄 편집 컨트롤에서만 처리됩니다.
애플리케이션이 새 메모리 핸들을 설정하기 전에 GetHandle 멤버 함수를 사용하여 현재 메모리 버퍼에 대한 핸들을 가져오고 Windows 함수를 사용하여 해당 메모리를 LocalFree
해제해야 합니다.
SetHandle
는 실행 취소 버퍼를 지우고( CanUndo 멤버 함수는 0을 반환) 내부 수정 플래그( GetModify 멤버 함수는 0을 반환)를 지웁니다. 편집 제어 창이 다시 그려집니다.
DS_LOCALEDIT 스타일 플래그가 설정된 대화 상자를 만든 경우에만 대화 상자의 여러 줄 편집 컨트롤에서 이 멤버 함수를 사용할 수 있습니다.
참고 항목
GetHandle
는 Windows 95/98에서 작동하지 않습니다. Windows 95/98에서 호출 GetHandle
하면 NULL이 반환됩니다. GetHandle
는 Windows NT 버전 3.51 이상에 설명된 대로 작동합니다.
자세한 내용은 Windows SDK의 EM_SETHANDLE, LocalAlloc 및 LocalFree 를 참조하세요.
예시
// The string to set in the edit control.
CString strString(_T("George Frideric"));
// Initialize the new local handle.
size_t cbSize = (strString.GetLength() + 1) * sizeof(TCHAR);
HLOCAL h = ::LocalAlloc(LHND, cbSize);
LPTSTR lpszText = (LPTSTR)::LocalLock(h);
_tcsncpy_s(lpszText, cbSize / sizeof(TCHAR), strString, _TRUNCATE);
::LocalUnlock(h);
// Free the current text handle of the edit control.
::LocalFree(m_myEdit.GetHandle());
// Set the new text handle.
m_myEdit.SetHandle(h);
CEdit::SetHighlight
현재 편집 컨트롤에 표시되는 텍스트 범위를 강조 표시합니다.
void SetHighlight(
int ichStart,
int ichEnd);
매개 변수
ichStart
[in] 강조 표시할 텍스트 범위에서 첫 번째 문자의 인덱스(0부터 시작)입니다.
ichEnd
[in] 강조 표시할 텍스트 범위에서 마지막 문자의 인덱스(0부터 시작하는 인덱스)입니다.
설명
이 메서드는 Windows SDK에 설명된 EM_SETHILITE 메시지를 보냅니다. 이 메서드는 Windows SDK에 설명된 EM_SETHILITE 메시지를 보냅니다. 둘 다 SetHighlight
유니 GetHighlight
코드 빌드에만 사용할 수 있습니다.
CEdit::SetLimitText
이 멤버 함수를 호출하여 이 CEdit
개체에 대한 텍스트 제한을 설정합니다.
void SetLimitText(UINT nMax);
매개 변수
nMax
새 텍스트 제한(문자)입니다.
설명
텍스트 제한은 편집 컨트롤에서 허용할 수 있는 최대 텍스트 크기(문자)입니다.
텍스트 제한을 변경하면 사용자가 입력할 수 있는 텍스트만 제한됩니다. 편집 컨트롤에 이미 있는 텍스트에는 영향을 주지 않으며 SetWindowText 멤버 함수CWnd
가 편집 컨트롤에 복사한 텍스트의 길이에도 영향을 주지 않습니다. 애플리케이션이 함수를 SetWindowText
사용하여 호출에서 지정한 것보다 더 많은 텍스트를 편집 컨트롤에 배치하는 LimitText
경우 사용자는 편집 컨트롤 내의 텍스트를 삭제할 수 있습니다. 그러나 현재 선택 영역을 삭제하면 텍스트가 텍스트 제한 아래로 떨어지지 않는 한 텍스트 제한으로 인해 기존 텍스트를 새 텍스트로 바꿀 수 없습니다.
이 함수는 Win32의 LimitText를 대체합니다.
자세한 내용은 Windows SDK의 EM_SETLIMITTEXT 참조하세요.
예시
CEditView::GetEditCtrl에 대한 예제를 참조하세요.
CEdit::SetMargins
이 편집 컨트롤의 왼쪽 및 오른쪽 여백을 설정하려면 이 메서드를 호출합니다.
void SetMargins(
UINT nLeft,
UINT nRight);
매개 변수
nLeft
새 왼쪽 여백의 너비(픽셀)입니다.
nRight
새 오른쪽 여백의 너비(픽셀)입니다.
설명
참고 항목
이 멤버 함수는 Windows 95 및 Windows NT 4.0부터 사용할 수 있습니다.
자세한 내용은 Windows SDK의 EM_SETMARGINS 참조하세요.
예시
CEditView::GetEditCtrl에 대한 예제를 참조하세요.
CEdit::SetModify
편집 컨트롤에 대해 수정된 플래그를 설정하거나 지우려면 이 함수를 호출합니다.
void SetModify(BOOL bModified = TRUE);
매개 변수
bModified
TRUE 값은 텍스트가 수정되었음을 나타내고 FALSE 값은 수정되지 않음을 나타냅니다. 기본적으로 수정된 플래그가 설정됩니다.
설명
수정된 플래그는 편집 컨트롤 내의 텍스트가 수정되었는지 여부를 나타냅니다. 사용자가 텍스트를 변경할 때마다 자동으로 설정됩니다. GetModify 멤버 함수를 사용하여 해당 값을 검색할 수 있습니다.
자세한 내용은 Windows SDK의 EM_SETMODIFY 참조하세요.
예시
CEdit::GetModify에 대한 예제를 참조하세요.
CEdit::SetPasswordChar
사용자가 텍스트를 입력할 때 편집 컨트롤에 표시되는 암호 문자를 설정하거나 제거하려면 이 함수를 호출합니다.
void SetPasswordChar(TCHAR ch);
매개 변수
ch
사용자가 입력한 문자 대신 표시할 문자를 지정합니다. ch가 0이면 사용자가 입력한 실제 문자가 표시됩니다.
설명
암호 문자가 설정되면 사용자가 입력하는 각 문자에 대해 해당 문자가 표시됩니다.
이 멤버 함수는 여러 줄 편집 컨트롤에 영향을 주지 않습니다.
멤버 함수가 SetPasswordChar
호출 CEdit
되면 ch로 지정된 문자를 사용하여 표시되는 모든 문자를 다시 그립니다.
편집 컨트롤이 ES_PASSWORD 스타일로 만들어지면 기본 암호 문자가 별표(*)로 설정됩니다. ch가 0으로 설정된 상태에서 호출되면 SetPasswordChar
이 스타일이 제거됩니다.
자세한 내용은 Windows SDK의 EM_SETPASSWORDCHAR 참조하세요.
예시
// Turn off the password mode.
m_myEdit.SetPasswordChar(0);
ASSERT(!(m_myEdit.GetStyle() & ES_PASSWORD));
CEdit::SetReadOnly
이 함수를 호출하여 편집 컨트롤의 읽기 전용 상태를 설정합니다.
BOOL SetReadOnly(BOOL bReadOnly = TRUE);
매개 변수
bReadOnly
편집 컨트롤의 읽기 전용 상태를 설정하거나 제거할지 여부를 지정합니다. TRUE 값은 상태를 읽기 전용으로 설정합니다. FALSE 값은 상태를 읽기/쓰기로 설정합니다.
Return Value
작업이 성공하면 0이 아니고 오류가 발생하면 0입니다.
설명
현재 설정은 CWnd::GetStyle의 반환 값에서 ES_READONLY 플래그를 테스트하여 찾을 수 있습니다.
자세한 내용은 Windows SDK의 EM_SETREADONLY 참조하세요.
예시
// Set the edit control to be read-only.
m_myEdit.SetReadOnly(TRUE);
ASSERT(m_myEdit.GetStyle() & ES_READONLY);
CEdit::SetRect
지정된 좌표를 사용하여 사각형의 크기를 설정하려면 이 함수를 호출합니다.
void SetRect(LPCRECT lpRect);
매개 변수
lpRect
서식 지정 사각형의 RECT
새 차원을 지정하는 구조체 또는 CRect
개체를 가리킵니다.
설명
이 멤버는 여러 줄 편집 컨트롤에서만 처리됩니다.
여러 줄 편집 컨트롤의 서식 사각형을 설정하는 데 사용합니다 SetRect
. 서식 지정 사각형은 편집 제어 창의 크기와 무관한 텍스트의 제한 사각형입니다. 편집 컨트롤을 처음 만들 때 서식 지정 사각형은 편집 컨트롤 창의 클라이언트 영역과 동일합니다. 멤버 함수를 SetRect
사용하면 애플리케이션에서 서식 사각형을 편집 제어 창보다 크거나 작게 만들 수 있습니다.
편집 컨트롤에 스크롤 막대가 없으면 서식 지정 사각형이 창보다 커지면 텍스트가 래핑되지 않고 잘립니다. 편집 컨트롤에 테두리가 포함되어 있으면 서식 사각형이 테두리 크기로 줄어듭니다. 멤버 함수에서 반환하는 GetRect
사각형을 조정하는 경우 사각형 SetRect
을 전달하기 전에 테두리 크기를 제거해야 합니다.
호출될 때 SetRect
편집 컨트롤의 텍스트도 서식을 다시 지정하고 다시 표시합니다.
자세한 내용은 Windows SDK의 EM_SETRECT 참조하세요.
예시
// Flag indicating whether to redraw the edit control.
bool fRedraw = TRUE;
CRect r;
m_myEdit.GetRect(&r);
// Reduce the formatting rect of the edit control by
// 10 pixels on each side.
if ((r.Width() > 20) && (r.Height() > 20))
{
r.DeflateRect(10, 10);
if (fRedraw)
m_myEdit.SetRect(&r);
else
m_myEdit.SetRectNP(&r);
}
CEdit::SetRectNP
이 함수를 호출하여 여러 줄 편집 컨트롤의 서식 사각형을 설정합니다.
void SetRectNP(LPCRECT lpRect);
매개 변수
lpRect
사각형의 RECT
새 차원을 지정하는 구조체 또는 CRect
개체를 가리킵니다.
설명
서식 지정 사각형은 편집 제어 창의 크기와 무관한 텍스트의 제한 사각형입니다.
SetRectNP
는 편집 제어 창이 다시 그려지지 않는다는 점을 제외하고 멤버 함수와 동일합니다 SetRect
.
편집 컨트롤을 처음 만들 때 서식 지정 사각형은 편집 컨트롤 창의 클라이언트 영역과 동일합니다. 멤버 함수를 SetRectNP
호출하면 애플리케이션에서 서식 사각형을 편집 제어 창보다 크거나 작게 만들 수 있습니다.
편집 컨트롤에 스크롤 막대가 없으면 서식 지정 사각형이 창보다 커지면 텍스트가 래핑되지 않고 잘립니다.
이 멤버는 여러 줄 편집 컨트롤에서만 처리됩니다.
자세한 내용은 Windows SDK의 EM_SETRECTNP 참조하세요.
예시
CEdit::SetRect에 대한 예제를 참조하세요.
CEdit::SetSel
편집 컨트롤에서 문자 범위를 선택하려면 이 함수를 호출합니다.
void SetSel(
DWORD dwSelection,
BOOL bNoScroll = FALSE);
void SetSel(
int nStartChar,
int nEndChar,
BOOL bNoScroll = FALSE);
매개 변수
dwSelection
하위 단어의 시작 위치와 상위 단어의 끝 위치를 지정합니다. 낮은 순서의 단어가 0이고 상위 단어가 -1이면 편집 컨트롤의 모든 텍스트가 선택됩니다. 낮은 순서의 단어가 -1이면 현재 선택 영역이 제거됩니다.
bNoScroll
캐리트를 보기로 스크롤해야 하는지 여부를 나타냅니다. FALSE이면 캐리트가 보기로 스크롤됩니다. TRUE이면 캐리트가 보기로 스크롤되지 않습니다.
nStartChar
시작 위치를 지정합니다. nStartChar가 0이고 nEndChar가 -1이면 편집 컨트롤의 모든 텍스트가 선택됩니다. nStartChar가 -1이면 현재 선택 항목이 제거됩니다.
nEndChar
끝 위치를 지정합니다.
설명
자세한 내용은 Windows SDK의 EM_SETSEL 참조하세요.
예시
CEdit::GetSel에 대한 예제를 참조하세요.
CEdit::SetTabStops
여러 줄 편집 컨트롤에서 탭 정지를 설정하려면 이 함수를 호출합니다.
void SetTabStops();
BOOL SetTabStops(const int& cxEachStop);
BOOL SetTabStops(
int nTabStops,
LPINT rgTabStops);
매개 변수
cxEachStop
모든 cxEachStop 대화 상자 단위에서 탭 정지를 설정하도록 지정합니다.
nTabStops
rgTabStops에 포함된 탭 중지 횟수를 지정합니다. 이 숫자는 1보다 커야 합니다.
rgTabStops
대화 상자 단위에서 탭 정지를 지정하는 부호 없는 정수 배열을 가리킵니다. 대화 상자 단위는 가로 또는 세로 거리입니다. 가로 대화 상자 단위 1개는 현재 대화 상자 기본 너비 단위의 1/4와 같고 세로 대화 상자 단위 1개는 현재 대화 상자 기본 높이 단위의 1/8과 같습니다. 대화 상자 기본 단위는 현재 시스템 글꼴의 높이와 너비를 기준으로 계산됩니다. Windows 함수는 GetDialogBaseUnits
현재 대화 상자 기본 단위를 픽셀 단위로 반환합니다.
Return Value
탭이 설정된 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
텍스트를 여러 줄 편집 컨트롤에 복사하면 텍스트의 모든 탭 문자로 인해 다음 탭 정지까지 공백이 생성됩니다.
탭 정지를 기본 크기 32 대화 상자 단위로 설정하려면 이 멤버 함수의 매개 변수가 없는 버전을 호출합니다. 탭 정지를 32 이외의 크기로 설정하려면 cxEachStop 매개 변수를 사용하여 버전을 호출합니다. 탭 정지를 크기 배열로 설정하려면 두 개의 매개 변수가 있는 버전을 사용합니다.
이 멤버 함수는 여러 줄 편집 컨트롤에서만 처리됩니다.
SetTabStops
는 편집 창을 자동으로 다시 그리지 않습니다. 편집 컨트롤에 이미 있는 텍스트의 탭 정지를 변경하는 경우 CWnd::InvalidateRect를 호출하여 편집 창을 다시 그립니다.
자세한 내용은 Windows SDK의 EM_SETTABSTOPS 및 GetDialogBaseUnits 를 참조하세요.
예시
CEditView::SetTabStops에 대한 예제를 참조하세요.
CEdit::ShowBalloonTip
현재 편집 컨트롤과 연결된 풍선 팁을 표시합니다.
BOOL ShowBalloonTip(PEDITBALLOONTIP pEditBalloonTip);
BOOL ShowBalloonTip(
LPCWSTR lpszTitle,
LPCWSTR lpszText,
INT ttiIcon = TTI_NONE);
매개 변수
pEditBalloonTip
[in] 풍선 팁을 설명하는 EDITBALLOONTIP 구조체에 대한 포인터입니다.
lpszTitle
[in] 풍선 팁의 제목을 포함하는 유니코드 문자열에 대한 포인터입니다.
lpszText
[in] 풍선 팁 텍스트가 포함된 유니코드 문자열에 대한 포인터입니다.
ttiIcon
[in] 풍선 팁과 연결할 아이콘의 유형을 지정하는 INT 입니다. 기본값은 TTI_NONE. 자세한 내용은 EDITBALLOONTIP 구조체의 멤버를 참조 ttiIcon
하세요.
Return Value
이 메서드가 성공하면 TRUE입니다. 그렇지 않으면 FALSE입니다.
설명
이 함수는 Windows SDK에 설명된 EM_SHOWBALLOONTIP 메시지를 보냅니다. 자세한 내용은 Edit_ShowBalloonTip 매크로를 참조하세요.
예시
첫 번째 코드 예제는 현재 편집 컨트롤에 액세스하는 데 사용되는 변수 m_cedit
를 정의합니다. 이 변수는 다음 예제에서 사용됩니다.
public:
// Variable to access the edit control.
CEdit m_cedit;
다음 코드 예제에서는 편집 컨트롤에 대 한 풍선 팁을 표시 합니다. CEdit::ShowBalloonTip 메서드는 제목 및 풍선 팁 텍스트를 지정합니다.
m_cedit.ShowBalloonTip(
_T("CEdit Balloon Tip"), // title
_T("Here's a tip!"), // text
TTI_INFO);
CEdit::Undo
이 함수를 호출하여 마지막 편집 제어 작업을 실행 취소합니다.
BOOL Undo();
Return Value
한 줄 편집 컨트롤의 경우 반환 값은 항상 0이 아닌 값입니다. 여러 줄 편집 컨트롤의 경우 실행 취소 작업이 성공하면 반환 값이 0이 아니고 실행 취소 작업이 실패하면 0입니다.
설명
실행 취소 작업을 실행 취소할 수도 있습니다. 예를 들어 첫 번째 호출을 사용하여 삭제된 텍스트를 복원할 Undo
수 있습니다. 중간 편집 작업이 없는 한 두 번째 호출 Undo
을 사용하여 텍스트를 다시 제거할 수 있습니다.
자세한 내용은 Windows SDK의 EM_UNDO 참조하세요.
예시
// Undo the last operation, if possible.
if (m_myEdit.CanUndo())
m_myEdit.Undo();
참고 항목
MFC 샘플 CALCDRIV
MFC 샘플 CMNCTRL2
CWnd 클래스
계층 구조 차트
CWnd 클래스
CButton 클래스
CComboBox 클래스
CListBox 클래스
CScrollBar 클래스
CStatic 클래스
CDialog 클래스