다음을 통해 공유


CEditView 클래스

Windows 편집 컨트롤의 기능을 제공하고 간단한 텍스트 편집기 기능을 구현하는 데 사용할 수 있는 뷰 클래스의 유형입니다.

구문

class CEditView : public CCtrlView

멤버

공용 생성자

속성 설명
CEditView::CEditView CEditView 형식의 개체를 생성합니다.

공용 메서드

이름 설명
CEditView::FindText 텍스트 내에서 문자열을 검색합니다.
CEditView::GetBufferLength 문자 버퍼의 길이를 가져옵니다.
CEditView::GetEditCtrl 개체 부분 CEditCEditView (Windows 편집 컨트롤)에 대한 액세스를 제공합니다.
CEditView::GetPrinterFont 현재 프린터 글꼴을 검색합니다.
CEditView::GetSelectedText 현재 텍스트 선택을 검색합니다.
CEditView::LockBuffer 버퍼를 잠깁니다.
CEditView::P rintInsideRect 지정된 사각형 안에 텍스트를 렌더링합니다.
CEditView::SerializeRaw 개체를 CEditView 원시 텍스트로 디스크에 직렬화합니다.
CEditView::SetPrinterFont 새 프린터 글꼴을 설정합니다.
CEditView::SetTabStops 화면 표시 및 인쇄 모두에 대한 탭 정지를 설정합니다.
CEditView::UnlockBuffer 버퍼의 잠금을 해제합니다.

보호된 메서드

속성 설명
CEditView::OnFindNext 텍스트 문자열의 다음 항목을 찾습니다.
CEditView::OnReplaceAll 지정된 문자열의 모든 항목을 새 문자열로 대체합니다.
CEditView::OnReplaceSel 현재 선택 영역을 대체합니다.
CEditView::OnTextNotFound 찾기 작업이 추가 텍스트와 일치하지 않을 때 호출됩니다.

공용 데이터 멤버

이름 설명
CEditView::d wStyleDefault 형식 CEditView의 개체에 대한 기본 스타일입니다.

설명

클래스는 CEditView 다음과 같은 추가 함수를 제공합니다.

  • 인쇄.

  • 찾아서 바꿀 수 있습니다.

클래스 CEditView 는 클래스 CView의 파생 항목이므로 클래스의 CEditView 개체를 문서 및 문서 템플릿과 함께 사용할 수 있습니다.

CEditView 컨트롤의 텍스트는 자체 전역 메모리 개체에 유지됩니다. 애플리케이션에는 임의의 수의 CEditView 개체가 있을 수 있습니다.

위에 나열된 기능이 추가된 편집 창을 사용하거나 간단한 텍스트 편집기 기능을 원하는 경우 형식 CEditView 의 개체를 만듭니다. 개체는 CEditView 창의 전체 클라이언트 영역을 차지할 수 있습니다. 기본 기능을 추가하거나 수정하거나 문서 서식 파일에 추가할 수 있는 클래스를 선언하기 위해 고유한 CEditView 클래스를 파생합니다.

클래스 CEditView 의 기본 구현은 ID_EDIT_SELECT_ALL, ID_EDIT_FIND, ID_EDIT_REPLACE, ID_EDIT_REPEAT 및 ID_FILE_PRINT 명령을 처리합니다.

기본 문자 제한 CEditView 은 (1024 * 1024 - 1 = 1048575)입니다. 기본 편집 컨트롤의 EM_LIMITTEXT 함수를 호출하여 변경할 수 있습니다. 그러나 운영 체제 및 편집 컨트롤 유형(단일 또는 여러 줄)에 따라 제한이 다릅니다. 이러한 제한에 대한 자세한 내용은 EM_LIMITTEXT 참조하세요.

컨트롤에서 이 제한을 변경하려면 클래스의 함수를 OnCreate() 재정의하고 다음 코드 줄을 삽입합니다 CEditView .

GetEditCtrl().SetLimitText(nNewVal); //nNewVal, the new character limit

형식(또는 파생된 CEditView형식 CEditView )의 개체에는 다음과 같은 제한 사항이 있습니다.

  • CEditView 은 (WYSIWYG) 편집에 표시되는 내용을 true로 구현하지 않습니다. 화면의 가독성과 인쇄된 출력 CEditView 일치 중에서 선택할 수 있는 경우 화면 가독성을 선택합니다.

  • CEditView 는 텍스트를 단일 글꼴로만 표시할 수 있습니다. 특수 문자 서식은 지원되지 않습니다. 더 큰 기능은 CRichEditView 클래스를 참조하세요.

  • 포함할 수 있는 CEditView 텍스트의 양이 제한됩니다. 제한은 컨트롤과 CEdit 동일합니다.

자세한 CEditView내용은 MFC에서 사용할 수 있는 파생 뷰 클래스를 참조하세요.

상속 계층 구조

CObject

CCmdTarget

CWnd

CView

CCtrlView

CEditView

요구 사항

헤더: afxext.h

CEditView::CEditView

CEditView 형식의 개체를 생성합니다.

CEditView();

설명

개체를 생성한 후 편집 컨트롤을 사용하려면 먼저 CWnd::Create 함수를 호출해야 합니다. 클래스 CEditView 를 파생하고 사용하여 CWinApp::AddDocTemplate템플릿에 추가하는 경우 프레임워크는 이 생성자와 함수를 Create 모두 호출합니다.

CEditView::d wStyleDefault

개체의 CEditView 기본 스타일을 포함합니다.

static const DWORD dwStyleDefault;

설명

이 정적 멤버를 함수의 dwStyle 매개 변수로 전달하여 개체의 Create 기본 스타일을 CEditView 가져옵니다.

CEditView::FindText

함수를 FindText 호출하여 개체의 텍스트 버퍼를 CEditView 검색합니다.

BOOL FindText(
    LPCTSTR lpszFind,
    BOOL bNext = TRUE,
    BOOL bCase = TRUE);

매개 변수

lpszFind
찾을 텍스트입니다.

bNext
검색 방향을 지정합니다. TRUE이면 검색 방향이 버퍼의 끝입니다. FALSE이면 검색 방향이 버퍼의 시작 부분으로 이동합니다.

bCase
검색이 대/소문자를 구분하는지 여부를 지정합니다. TRUE이면 검색이 대/소문자를 구분합니다. FALSE이면 검색이 대/소문자를 구분하지 않습니다.

Return Value

검색 텍스트를 찾은 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

이 함수는 버퍼의 텍스트에서 lpszFind지정된 텍스트, 현재 선택 영역부터 bNext지정된 방향 및 bCase로 지정된 대/소문자 구분을 검색합니다. 텍스트를 찾은 경우 선택 영역을 찾은 텍스트로 설정하고 0이 아닌 값을 반환합니다. 텍스트를 찾을 수 없으면 함수는 0을 반환합니다.

일반적으로 호출하는 함수를 재정OnFindNextFindText 하지 않는 한 함수를 호출FindText할 필요가 없습니다.

CEditView::GetBufferLength

이 멤버 함수를 호출하여 null 종결자를 포함하지 않고 편집 컨트롤의 버퍼에 현재 있는 문자 수를 가져옵니다.

UINT GetBufferLength() const;

Return Value

버퍼에 있는 문자열의 길이입니다.

CEditView::GetEditCtrl

편집 보기에서 사용하는 편집 컨트롤에 대한 참조를 가져오기 위해 호출 GetEditCtrl 합니다.

CEdit& GetEditCtrl() const;

Return Value

CEdit 개체에 대한 참조입니다.

설명

이 컨트롤은 CEdit 형식이므로 멤버 함수를 사용하여 Windows 편집 컨트롤을 직접 조작할 CEdit 수 있습니다.

주의

개체를 CEdit 사용하면 기본 Windows 편집 컨트롤의 상태가 변경됩니다. 예를 들어 CEdit::SetTabStops 함수를 사용하여 탭 설정을 변경하면 안 됩니다. 편집 컨트롤과 인쇄에서 모두 사용할 수 있는 설정을 캐시하기 때문 CEditView 입니다. 대신 CEditView::SetTabStops를 사용합니다.

예시

void CMyEditView::OnInitialUpdate()
{
   CEditView::OnInitialUpdate();

   // get the edit control and set some initial properties for it
   CEdit &theEdit = GetEditCtrl();

   // adjust the left margin without changing the right margin
   DWORD dwMargins = theEdit.GetMargins();
   theEdit.SetMargins(20, HIWORD(dwMargins));

   // only accept 10k of text
   theEdit.SetLimitText(10 * 1024);
}

CEditView::GetPrinterFont

현재 프린터 글꼴을 설명하는 CFont 개체에 대한 포인터를 가져오기 위해 호출 GetPrinterFont 합니다.

CFont* GetPrinterFont() const;

Return Value

현재 프린터 글꼴을 CFont 지정하는 개체에 대한 포인터입니다. 프린터 글꼴이 설정되지 않은 경우 NULL입니다. 해당 포인터는 임시적이며, 나중에 사용하려고 저장하면 안됩니다.

설명

프린터 글꼴이 설정되지 않은 경우 클래스의 CEditView 기본 인쇄 동작은 표시에 사용되는 것과 동일한 글꼴을 사용하여 인쇄하는 것입니다.

이 함수를 사용하여 현재 프린터 글꼴을 확인합니다. 원하는 프린터 글꼴이 아닌 경우 CEditView::SetPrinterFont를 사용하여 변경합니다.

CEditView::GetSelectedText

선택한 텍스트를 CString 선택 영역의 끝이나 선택 영역의 첫 번째 캐리지 리턴 문자 앞에 오는 문자까지 개체에 복사하려면 호출 GetSelectedText 합니다.

void GetSelectedText(CString& strResult) const;

매개 변수

strResult
선택한 텍스트를 받을 개체에 대한 참조 CString 입니다.

CEditView::LockBuffer

이 멤버 함수를 호출하여 버퍼에 대한 포인터를 가져옵니다. 버퍼는 수정하면 안 됩니다.

LPCTSTR LockBuffer() const;

Return Value

편집 컨트롤의 버퍼에 대한 포인터입니다.

CEditView::OnFindNext

bCase에서 지정한 대/소문자 구분을 사용하여 버퍼의 텍스트를 bNext에서 지정한 방향으로 lpszFind지정된 텍스트를 검색합니다.

virtual void OnFindNext(
    LPCTSTR lpszFind,
    BOOL bNext,
    BOOL bCase);

매개 변수

lpszFind
찾을 텍스트입니다.

bNext
검색 방향을 지정합니다. TRUE이면 검색 방향이 버퍼의 끝입니다. FALSE이면 검색 방향이 버퍼의 시작 부분으로 이동합니다.

bCase
검색이 대/소문자를 구분하는지 여부를 지정합니다. TRUE이면 검색이 대/소문자를 구분합니다. FALSE이면 검색이 대/소문자를 구분하지 않습니다.

설명

검색은 현재 선택 영역의 시작 부분에서 시작되며 FindText 호출을 통해 수행됩니다. 기본 구현 OnFindNext 에서는 텍스트를 찾을 수 없는 경우 OnTextNotFound를 호출합니다.

OnFindNext 재정의하여 파생 개체가 텍스트를 검색하는 CEditView방식을 변경합니다. CEditView 사용자가 표준 찾기 대화 상자에서 다음 찾기 단추를 선택하면 이 호출 OnFindNext 됩니다.

CEditView::OnReplaceAll

CEditView 는 사용자가 표준 바꾸기 대화 상자에서 모두 바꾸기 단추를 선택하면 호출 OnReplaceAll 됩니다.

virtual void OnReplaceAll(
    LPCTSTR lpszFind,
    LPCTSTR lpszReplace,
    BOOL bCase);

매개 변수

lpszFind
찾을 텍스트입니다.

lpszReplace
검색 텍스트를 바꿀 텍스트입니다.

bCase
검색이 대/소문자를 구분하는지 여부를 지정합니다. TRUE이면 검색이 대/소문자를 구분합니다. FALSE이면 검색이 대/소문자를 구분하지 않습니다.

설명

OnReplaceAll는 bCase로 지정된 대/소문자 구분을 사용하여 lpszFind로 지정된 텍스트에 대한 버퍼의 텍스트를 검색합니다. 검색은 현재 선택 영역의 시작 부분에서 시작됩니다. 검색 텍스트를 찾을 때마다 이 함수는 해당 텍스트의 발생을 lpszReplace에서 지정한 텍스트로 바꿉니다. 검색은 FindText 호출을 통해 수행됩니다. 기본 구현 에서는 텍스트를 찾을 수 없는 경우 OnTextNotFound 가 호출됩니다.

현재 선택 영역이 lpszFind와 일치하지 않으면 선택 영역이 lpszFind로 지정된 텍스트의 첫 번째 항목으로 업데이트되고 바꾸기가 수행되지 않습니다. 이렇게 하면 사용자가 선택 영역이 바꿀 텍스트와 일치하지 않을 때 수행하려는 작업인지 확인할 수 있습니다.

파생 개체가 텍스트를 바꾸는 방식을 CEditView변경하려면 재정 OnReplaceAll 의합니다.

CEditView::OnReplaceSel

CEditView 는 사용자가 표준 바꾸기 대화 상자에서 바꾸기 단추를 선택할 때 호출 OnReplaceSel 됩니다.

virtual void OnReplaceSel(
    LPCTSTR lpszFind,
    BOOL bNext,
    BOOL bCase,
    LPCTSTR lpszReplace);

매개 변수

lpszFind
찾을 텍스트입니다.

bNext
검색 방향을 지정합니다. TRUE이면 검색 방향이 버퍼의 끝입니다. FALSE이면 검색 방향이 버퍼의 시작 부분으로 이동합니다.

bCase
검색이 대/소문자를 구분하는지 여부를 지정합니다. TRUE이면 검색이 대/소문자를 구분합니다. FALSE이면 검색이 대/소문자를 구분하지 않습니다.

lpszReplace
찾은 텍스트를 바꿀 텍스트입니다.

설명

선택 영역을 바꾼 후 이 함수는 버퍼의 텍스트를 bNext에서 지정한 방향으로 bNext에서 지정한 방향으로 bCase에서 지정한 다음으로 lpszFind로 지정된 텍스트의 다음 항목을 검색합니다. 검색은 FindText 호출을 통해 수행됩니다. 텍스트를 찾을 수 없으면 OnTextNotFound 가 호출됩니다.

-derived 개체가 선택한 텍스트를 대체하는 방식을 CEditView변경하려면 재정 OnReplaceSel 의합니다.

CEditView::OnTextNotFound

Windows 함수를 호출하는 기본 구현을 변경하려면 이 함수 MessageBeep를 재정의합니다.

virtual void OnTextNotFound(LPCTSTR lpszFind);

매개 변수

lpszFind
찾을 텍스트입니다.

CEditView::P rintInsideRect

rectLayout으로 지정된 사각형의 텍스트를 인쇄하려면 호출 PrintInsideRect 합니다.

UINT PrintInsideRect(
    CDC *pDC,
    RECT& rectLayout,
    UINT nIndexStart,
    UINT nIndexStop);

매개 변수

pDC
프린터 디바이스 컨텍스트에 대한 포인터입니다.

rectLayout
텍스트를 렌더링할 사각형을 지정하는 CRect 개체 또는 RECT 구조 체에 대한 참조입니다.

nIndexStart
렌더링할 첫 번째 문자의 버퍼 내 인덱스입니다.

nIndexStop
렌더링할 마지막 문자 다음에 있는 문자의 버퍼 내 인덱스입니다.

Return Value

인쇄할 다음 문자의 인덱스(즉, 마지막으로 렌더링된 문자 다음에 오는 문자)입니다.

설명

컨트롤에 CEditView 스타일 ES_AUTOHSCROLL 없는 경우 렌더링 사각형 내에서 텍스트가 래핑됩니다. 컨트롤에 스타일 ES_AUTOHSCROLL 있는 경우 텍스트는 사각형의 오른쪽 가장자리에 잘립니다.

rect.bottom rectLayout 개체의 요소는 사각형의 크기가 텍스트에서 차지하는 원래 사각형의 일부를 정의할 수 있도록 변경됩니다.

CEditView::SerializeRaw

개체를 CArchive 읽거나 개체의 텍스트를 텍스트 CEditView 파일에 쓰도록 호출 SerializeRaw 합니다.

void SerializeRaw(CArchive& ar);

매개 변수

ar
CArchive serialize된 텍스트를 저장하는 개체에 대한 참조입니다.

설명

SerializeRawCEditView이전의 개체 설명 데이터 없이 텍스트만 읽고 쓴다는 점에서 '의 Serialize 내부 구현과 다릅니다.

CEditView::SetPrinterFont

pFont에서 지정한 글꼴로 프린터 글꼴을 설정하려면 호출 SetPrinterFont 합니다.

void SetPrinterFont(CFont* pFont);

매개 변수

pFont
형식 CFont의 개체에 대한 포인터입니다. NULL인 경우 인쇄에 사용되는 글꼴은 표시 글꼴을 기반으로 합니다.

설명

보기에서 항상 인쇄에 특정 글꼴을 사용하려면 클래스의 OnPreparePrinting 함수에 호출을 SetPrinterFont 포함합니다. 이 가상 함수는 인쇄하기 전에 호출되므로 보기의 내용이 인쇄되기 전에 글꼴 변경이 수행됩니다.

CEditView::SetTabStops

표시 및 인쇄에 사용되는 탭 정지를 설정하려면 이 함수를 호출합니다.

void SetTabStops(int nTabStops);

매개 변수

nTabStops
각 탭 정지의 너비(대화 상자 단위)입니다.

설명

단일 탭 중지 너비만 지원됩니다. ( CEdit 개체는 여러 탭 너비를 지원합니다.) 너비는 인쇄 또는 표시 시 사용된 글꼴의 평균 문자 너비(대문자 및 소문자 영문자만 기준)의 4분의 1에 해당하는 대화 상자 단위입니다. 탭 중지 값을 캐시해야 하므로 CEditView 사용하지 CEdit::SetTabStops 않아야 합니다.

이 함수는 호출되는 개체의 탭만 수정합니다. 애플리케이션의 각 CEditView 개체에 대한 탭 정지를 변경하려면 각 개체의 SetTabStops 함수를 호출합니다.

예시

이 코드 조각은 컨트롤에서 사용하는 글꼴을 신중하게 측정하여 컨트롤의 탭 정지를 네 번째 문자마다 설정합니다.

// gain a reference to the edit control
CEdit &theEdit = GetEditCtrl();

// get the font the control is using
CFont *pFont = theEdit.GetFont();
TEXTMETRIC tm;

// get the control's DC, too
CDC *pDC = theEdit.GetDC();

// Select the font that the control uses by default into the DC.
// We must do this because the control may or may not be using
// that font at this exact moment
CFont *pOldFont = pDC->SelectObject(pFont);

// Retrieve text metrics for that font and return the previously
// selected font.
pDC->GetTextMetrics(&tm);
pDC->SelectObject(pOldFont);

// Get an identity rectangle and map it to dialog units
CRect rect(0, 0, 100, 1);
::MapDialogRect((HWND)this, rect);

// We now know that 100 dialog units are rect.Width() screen units,
// so we can multiply screen units by 100 and divide by rect.Width()
// to find dialog units from screen units. tm.tmAveCharWidth is
// the width of _one_ character, so setting the tabs at every
// four characters means we also multiply by four.
SetTabStops((4 * tm.tmAveCharWidth * 100) / rect.Width());

CEditView::UnlockBuffer

이 멤버 함수를 호출하여 버퍼의 잠금을 해제합니다.

void UnlockBuffer() const;

설명

LockBuffer에서 반환된 포인터 사용을 완료한 후 호출 UnlockBuffer 합니다.

참고 항목

MFC 샘플 SUPERPAD
CCtrlView 클래스
계층 구조 차트
CEdit 클래스
CDocument 클래스
CDocTemplate 클래스
CCtrlView 클래스
CRichEditView 클래스