다음을 통해 공유


TN022: 표준 명령 구현

비고

다음 기술 정보는 온라인 설명서에 처음 포함되었으므로 업데이트되지 않았습니다. 따라서 일부 절차와 항목이 만료되거나 올바르지 않을 수 있습니다. 최신 정보는 온라인 설명서 인덱스의 관심 항목을 검색하는 것이 좋습니다.

이 참고에서는 MFC 2.0에서 제공하는 표준 명령 구현에 대해 설명합니다. 많은 표준 명령을 구현하는 데 사용되는 메커니즘을 설명하므로 Technical Note 21 을 먼저 읽습니다.

이 설명에서는 MFC 아키텍처, API 및 일반적인 프로그래밍 방법에 대한 지식을 가정합니다. 문서화되지 않은 "구현 전용" API뿐만 아니라 문서화된 API도 설명합니다. MFC에서 프로그래밍하는 방법 또는 기능 학습을 시작할 수 있는 위치는 아닙니다. 자세한 내용 및 문서화된 API에 대한 자세한 내용은 Visual C++를 참조하세요.

문제

MFC는 헤더 파일 AFXRES.H에 많은 표준 명령 ID를 정의합니다. 이러한 명령에 대한 프레임워크 지원은 다양합니다. 프레임워크 클래스가 이러한 명령을 처리하는 위치와 방법을 이해하면 프레임워크가 내부적으로 작동하는 방식을 보여 줄 뿐만 아니라 표준 구현을 사용자 지정하고 사용자 고유의 명령 처리기를 구현하는 몇 가지 기술을 학습하는 방법에 대한 유용한 정보를 제공합니다.

이 기술 참고 사항의 내용

각 명령 ID는 다음 두 섹션에 설명되어 있습니다.

  • 제목: 명령 ID의 기호 이름(예: ID_FILE_SAVE)과 명령의 목적(예: "현재 문서 저장")을 콜론으로 구분합니다.

  • 명령을 구현하는 클래스와 기본 구현이 수행하는 작업을 설명하는 하나 이상의 단락

대부분의 기본 명령 구현은 프레임워크의 기본 클래스 메시지 맵에 미리 연결됩니다. 파생 클래스에 명시적 배선이 필요한 몇 가지 명령 구현이 있습니다. "참고" 아래에 설명되어 있습니다. AppWizard에서 올바른 옵션을 선택한 경우 생성된 기본 애플리케이션에서 이러한 기본 처리기가 자동으로 연결됩니다.

명명 규칙

표준 명령은 가능한 경우 사용하는 것이 좋습니다 간단한 명명 규칙을 따릅니다. 대부분의 표준 명령은 애플리케이션의 메뉴 모음에 있는 표준 위치에 있습니다. 명령의 기호 이름은 "ID_"로 시작하고 표준 팝업 메뉴 이름과 메뉴 항목 이름으로 시작합니다. 기호 이름은 대문자로 작성되고 밑줄로 단어를 구분합니다. 표준 메뉴 항목 이름이 없는 명령의 경우 논리 명령 이름은 "ID_"(예: ID_NEXT_PANE)으로 정의됩니다.

"ID_" 접두사를 사용하여 메뉴 항목, 도구 모음 단추 또는 기타 명령 사용자 인터페이스 개체에 바인딩되도록 설계된 명령을 나타냅니다. "ID_" 명령을 처리하는 명령 처리기는 MFC 명령 아키텍처의 ON_COMMAND 및 ON_UPDATE_COMMAND_UI 메커니즘을 사용해야 합니다.

명령 아키텍처를 따르지 않고 메뉴별 코드가 필요한 메뉴 항목에는 표준 "IDM_" 접두사를 사용하여 사용하도록 설정하고 사용하지 않도록 설정하는 것이 좋습니다. 물론 MFC 명령 아키텍처를 따르면 명령 처리기가 도구 모음에서 작동하므로 명령 처리기가 더 강력해질 뿐만 아니라 명령 처리기 코드를 재사용할 수 있기 때문에 메뉴별 명령의 수는 작아야 합니다.

ID 범위

MFC의 ID 범위 사용에 대한 자세한 내용은 Technical Note 20 을 참조하세요.

MFC 표준 명령은 0xEFFF 0xE000 범위에 속합니다. 이러한 ID는 이후 버전의 라이브러리에서 변경될 수 있으므로 이러한 ID의 특정 값을 사용하지 마세요.

애플리케이션은 0xDFFF 0x8000 범위에서 해당 명령을 정의해야 합니다.

표준 명령 ID

각 명령 ID에는 PROMPTS.RC 파일에서 찾을 수 있는 표준 메시지 줄 프롬프트 문자열이 있습니다. 해당 메뉴 프롬프트의 문자열 ID는 명령 ID와 동일해야 합니다.

  • ID_FILE_NEW 새/빈 문서를 만듭니다.

    비고

    기능을 활성화하려면 CWinApp 파생 클래스의 메시지 맵에 여기에 연결해야 합니다.

    CWinApp::OnFileNew 는 애플리케이션의 문서 서식 파일 수에 따라 이 명령을 다르게 구현합니다. 하나 CDocTemplateCWinApp::OnFileNew 만 있는 경우 해당 형식의 새 문서와 적절한 프레임 및 뷰 클래스를 만듭니다.

    CDocTemplate가 둘 이상 있는 경우 CWinApp::OnFileNew는 사용자에게 대화 상자(AFX_IDD_NEWTYPEDLG)를 통해 사용할 문서 유형을 선택하라는 메시지를 표시합니다. 선택한 CDocTemplate 문서를 만드는 데 사용됩니다.

    ID_FILE_NEW의 일반적인 사용자 지정 중 하나는 보다 그래픽적인 방식으로 다양한 문서 유형을 제공하는 것입니다. 이 경우 직접 CMyApp::OnFileNew 구현하고 대신 메시지 맵에 CWinApp::OnFileNew배치할 수 있습니다. 기본 클래스 구현을 호출할 필요가 없습니다.

    ID_FILE_NEW 대한 또 다른 일반적인 사용자 지정은 각 형식의 문서를 만들기 위한 별도의 명령을 제공하는 것입니다. 이 경우 새 명령 ID(예: ID_FILE_NEW_CHART 및 ID_FILE_NEW_SHEET)를 정의해야 합니다.

  • ID_FILE_OPEN 기존 문서를 엽니다.

    비고

    기능을 활성화하려면 CWinApp 파생 클래스의 메시지 맵에 여기에 연결해야 합니다.

    CWinApp::OnFileOpen는 파일을 열기 위해 파일 이름 또는 경로 이름을 사용하여 CWinApp::DoPromptFileName을 호출한 후 CWinApp::OpenDocumentFile를 호출하는 매우 간단한 구현을 가지고 있습니다. 구현 루틴 CWinAppDoPromptFileName 표준 FileOpen 대화 상자를 표시하고 현재 문서 템플릿에서 가져온 파일 확장명으로 채웁니다.

    ID_FILE_OPEN 한 가지 일반적인 사용자 지정은 FileOpen 대화 상자를 사용자 지정하거나 파일 필터를 추가하는 것입니다. 이를 사용자 지정하는 권장 방법은 기본 구현을 사용자 고유의 FileOpen 대화 상자로 바꾸고 문서의 파일 또는 경로 이름으로 호출 CWinApp::OpenDocumentFile 하는 것입니다. 기본 클래스를 호출할 필요가 없습니다.

  • ID_FILE_CLOSE 현재 열려 있는 문서를 닫습니다.

    CDocument::OnFileClose 을 호출 CDocument::SaveModified 하여 수정된 경우 문서를 저장하라는 메시지를 표시한 다음 호출 OnCloseDocument합니다. 문서 삭제를 포함한 모든 종료 논리는 OnCloseDocument 루틴에서 수행됩니다.

    비고

    ID_FILE_CLOSE 문서 프레임 창으로 전송된 WM_CLOSE 메시지 또는 SC_CLOSE 시스템 명령과 다르게 작동합니다. 창을 닫으면 문서를 표시하는 마지막 프레임 창인 경우에만 문서가 닫힙니다. ID_FILE_CLOSE 사용하여 문서를 닫으면 문서를 닫을 뿐만 아니라 문서를 표시하는 모든 프레임 창이 닫힙니다.

  • ID_FILE_SAVE 현재 문서를 저장합니다.

    구현은 CDocument::DoSaveOnFileSave에 각각 사용되는 도우미 루틴 OnFileSaveAs을 사용합니다. 이전에 저장되지 않았거나(즉, FileNew의 경우와 같이 경로 이름이 없음) 읽기 전용 문서에서 읽은 문서를 OnFileSave 저장하면 논리는 ID_FILE_SAVE_AS 명령처럼 작동하고 사용자에게 새 파일 이름을 제공하도록 요청합니다. 파일을 열고 저장하는 실제 프로세스는 가상 함수 OnSaveDocument를 통해 수행됩니다.

    ID_FILE_SAVE 사용자 지정하는 두 가지 일반적인 이유가 있습니다. 저장하지 않는 문서의 경우 사용자 인터페이스에서 ID_FILE_SAVE 메뉴 항목 및 도구 모음 단추를 제거하면 됩니다. 문서가 더러워지지 않도록 주의하십시오(즉, 절대로 CDocument::SetModifiedFlag을 호출하지 마십시오). 문서가 더러워지지 않으면 프레임워크에서 문서를 저장하지 않습니다. 디스크 파일이 아닌 다른 위치로 저장하는 문서의 경우 해당 작업에 대한 새 명령을 정의합니다.

    경우 COleServerDocID_FILE_SAVE 파일 저장(일반 문서용) 및 파일 업데이트(포함된 문서용)에 모두 사용됩니다.

    문서 데이터가 개별 디스크 파일에 저장되어 있지만 기본 CDocument serialize 구현을 사용하지 않으려는 경우 CDocument::OnSaveDocument을(를) OnFileSave 대신 재정의해야 합니다.

  • ID_FILE_SAVE_AS 현재 문서를 다른 파일 이름으로 저장합니다.

    구현은 CDocument::OnFileSaveAs과 동일한 CDocument::DoSave 도우미 루틴을 OnFileSave에 사용합니다. 이 OnFileSaveAs 명령은 저장 전에 문서에 파일 이름이 없는 경우 ID_FILE_SAVE 것처럼 처리됩니다. COleServerDoc::OnFileSaveAs 는 일반 문서 데이터 파일을 저장하거나 다른 애플리케이션에 포함된 OLE 개체를 나타내는 서버 문서를 별도의 파일로 저장하는 논리를 구현합니다.

    ID_FILE_SAVE의 논리를 사용자 지정하는 경우, 유사한 방식으로 ID_FILE_SAVE_AS도 사용자 지정해야 하며 그렇지 않으면 "다른 이름으로 저장" 작업이 문서에 적용되지 않을 수 있습니다. 메뉴 모음이 필요하지 않은 경우 메뉴 모음에서 메뉴 항목을 제거할 수 있습니다.

  • ID_FILE_SAVE_COPY_AS 복사본 현재 문서를 새 이름으로 저장합니다.

    COleServerDoc::OnFileSaveCopyAs 문서 개체가 저장 후 기본 파일에 "연결"되지 않는다는 점을 제외하고 구현은 매우 유사CDocument::OnFileSaveAs합니다. 즉, 메모리 내 문서가 저장 전에 "수정"된 경우 여전히 "수정"됩니다. 또한 이 명령은 문서에 저장된 경로 이름 또는 제목에 영향을 주지 않습니다.

  • ID_FILE_UPDATE 컨테이너에 포함된 문서를 저장하라고 알립니다.

    구현은 COleServerDoc::OnUpdateDocument 포함이 저장되어야 한다고 컨테이너에 간단히 알립니다. 그런 다음 컨테이너는 포함된 개체를 저장하기 위해 적절한 OLE API를 호출합니다.

  • ID_FILE_PAGE_SETUP 애플리케이션별 페이지 설정/레이아웃 대화 상자를 호출합니다.

    현재 이 대화 상자에는 표준이 없으며 프레임워크에는 이 명령의 기본 구현이 없습니다.

    이 명령을 구현하도록 선택하는 경우 이 명령 ID를 사용하는 것이 좋습니다.

  • ID_FILE_PRINT_SETUP 표준 인쇄 설정 대화 상자를 호출합니다.

    비고

    기능을 활성화하려면 CWinApp 파생 클래스의 메시지 맵에 여기에 연결해야 합니다.

    이 명령은 사용자가 적어도 이 문서 또는 이 응용 프로그램의 모든 문서에 대해 프린터 및 인쇄 설정을 사용자 지정할 수 있도록 하는 표준 인쇄 설정 대화 상자를 호출합니다. 제어판을 사용하여 전체 시스템에 대한 기본 프린터 설정을 변경해야 합니다.

    CWinApp::OnFilePrintSetupCPrintDialog 객체를 생성하고 CWinApp::DoPrintDialog 구현 함수를 호출하는 매우 간단한 구현입니다. 그러면 애플리케이션 기본 프린터 설정이 설정됩니다.

    이 명령을 사용자 지정하는 일반적인 요구는 문서별 프린터 설정을 허용하는 것입니다. 이 설정은 저장될 때 문서와 함께 저장해야 합니다. 이렇게 하려면 개체를 만드는 CDocument 클래스에 CPrintDialog 메시지 맵 처리기를 추가하고, 적절한 프린터 특성(일반적으로 hDevModehDevNames)으로 초기화하고, 호출CPrintDialog::DoModal하고, 변경된 프린터 설정을 저장해야 합니다. 강력한 구현을 위해 오류를 감지하기 위한 CWinApp::DoPrintDialog의 구현과 합리적인 기본값을 처리하고 시스템 전체 프린터 변경 내용을 추적하기 위한 CWinApp::UpdatePrinterSelection의 구현을 살펴봐야 합니다.

  • 현재 문서의 ID_FILE_PRINT 표준 인쇄

    비고

    기능을 활성화하려면 CView 파생 클래스의 메시지 맵에 여기에 연결해야 합니다.

    이 명령은 현재 문서를 인쇄하거나 더 올바르게 인쇄하여 표준 인쇄 대화 상자를 호출하고 인쇄 엔진을 실행하는 인쇄 프로세스를 시작합니다.

    CView::OnFilePrint 는 이 명령과 기본 인쇄 루프를 구현합니다. 가상 CView::OnPreparePrinting를 호출하여 사용자에게 인쇄 대화 상자를 프롬프트합니다. 그런 다음 출력 DC를 준비하여 프린터로 보내고, 인쇄 진행률 대화 상자(AFX_IDD_PRINTDLG)를 표시한 다음 StartDoc 이스케이프 명령을 프린터로 보냅니다. CView::OnFilePrint 또한 기본 페이지 지향 인쇄 루프를 포함합니다. 각 페이지에 대해 가상 CView::OnPrepareDC 을 호출한 다음 이스케이프를 StartPage 호출하고 해당 페이지에 대한 가상 CView::OnPrint 을 호출합니다. 완료되면 가상 CView::OnEndPrinting 이 호출되고 인쇄 진행률 대화 상자가 닫힙니다.

    MFC 인쇄 아키텍처는 인쇄 및 인쇄 미리 보기를 다양한 방식으로 연동할 수 있도록 설계되었습니다. 일반적으로 모든 페이지 지향 인쇄 작업에 적합한 다양한 CView 재정의 가능한 함수를 찾을 수 있습니다. 페이지 지향이 아닌 출력에 프린터를 사용하는 애플리케이션의 경우에만 ID_FILE_PRINT 구현을 바꿀 필요가 있습니다.

  • ID_FILE_PRINT_PREVIEW 현재 문서의 인쇄 미리 보기 모드를 입력합니다.

    비고

    기능을 활성화하려면 CView 파생 클래스의 메시지 맵에 여기에 연결해야 합니다.

    CView::OnFilePrintPreview 는 문서화된 도우미 함수 CView::DoPrintPreview를 호출하여 인쇄 미리 보기 모드를 시작합니다. CView::DoPrintPreview 는 인쇄 루프의 주 엔진과 마찬가지로 OnFilePrint 인쇄 미리 보기 루프의 기본 엔진입니다.

    인쇄 미리 보기 작업은 다양한 매개 변수 DoPrintPreview를 전달하여 다양한 방법으로 사용자 지정할 수 있습니다. 인쇄 미리 보기의 세부 정보 및 사용자 지정 방법에 대해 설명하는 Technical Note 30을 참조하세요.

  • ID_FILE_MRU_FILE1... FILE16 파일 MRU 목록에 대한 명령 ID 범위입니다.

    CWinApp::OnUpdateRecentFileMenu 는 ON_UPDATE_COMMAND_UI 메커니즘의 고급 사용 중 하나인 업데이트 명령 UI 처리기입니다. 메뉴 리소스에서 ID가 ID_FILE_MRU_FILE1인 단일 메뉴 항목만 정의하면 됩니다. 해당 메뉴 항목은 처음에 사용하지 않도록 설정된 상태로 유지됩니다.

    MRU 목록이 커짐에 따라 더 많은 메뉴 항목이 목록에 추가됩니다. 표준 CWinApp 구현은 기본적으로 가장 최근에 사용한 4개의 파일의 표준 제한으로 설정됩니다. 더 크거나 작은 값으로 호출 CWinApp::LoadStdProfileSettings 하여 기본값을 변경할 수 있습니다. MRU 목록은 애플리케이션의 .INI 파일에 저장됩니다. 이 목록은 호출InitInstance하는 경우 애플리케이션의 LoadStdProfileSettings 함수에 로드되고 애플리케이션이 종료될 때 저장됩니다. 또한 MRU 업데이트 명령 UI 처리기는 절대 경로를 파일 메뉴에 표시할 상대 경로로 변환합니다.

    CWinApp::OnOpenRecentFile 는 실제 명령을 수행하는 ON_COMMAND 처리기입니다. 단순히 MRU 목록에서 파일 이름을 가져와 파일을 열고 MRU 목록을 업데이트하는 모든 작업을 수행하는 CWinApp::OpenDocumentFile을 호출합니다.

    이 명령 처리기의 사용자 지정은 권장되지 않습니다.

  • ID_EDIT_CLEAR 현재 선택 영역 지우기

    현재 이 명령에 대한 표준 구현은 없습니다. 각 CView파생 클래스에 대해 이를 구현해야 합니다.

    CEditViewCEdit::Clear를 사용하여 이 명령을 구현합니다. 현재 선택 영역이 없으면 명령을 사용할 수 없습니다.

    이 명령을 구현하도록 선택하는 경우 이 명령 ID를 사용하는 것이 좋습니다.

  • ID_EDIT_CLEAR_ALL 전체 문서를 지웁니다.

    현재 이 명령에 대한 표준 구현은 없습니다. 각 CView파생 클래스에 대해 이를 구현해야 합니다.

    이 명령을 구현하도록 선택하는 경우 이 명령 ID를 사용하는 것이 좋습니다. 예제 구현은 MFC 자습서 샘플 SCRIBBLE 을 참조하세요.

  • ID_EDIT_COPY 현재 선택 영역을 클립보드에 복사합니다.

    현재 이 명령에 대한 표준 구현은 없습니다. 각 CView파생 클래스에 대해 이를 구현해야 합니다.

    CEditView에서는 CEdit::Copy을 사용하여 현재 선택한 텍스트를 CF_TEXT 형식으로 클립보드에 복사하는 이 명령의 구현을 제공합니다. 현재 선택 영역이 없으면 명령을 사용할 수 없습니다.

    이 명령을 구현하도록 선택하는 경우 이 명령 ID를 사용하는 것이 좋습니다.

  • ID_EDIT_CUT 현재 선택 영역을 클립보드로 잘라냅니다.

    현재 이 명령에 대한 표준 구현은 없습니다. 각 CView파생 클래스에 대해 이를 구현해야 합니다.

    CEditView은 이 명령의 구현을 제공하며 현재 선택한 텍스트를 CEdit::Cut를 사용하여 CF_TEXT로 클립보드에 잘라냅니다. 현재 선택 영역이 없으면 명령을 사용할 수 없습니다.

    이 명령을 구현하도록 선택하는 경우 이 명령 ID를 사용하는 것이 좋습니다.

  • ID_EDIT_FIND 찾기 작업을 시작하고 모덜리스 찾기 대화 상자를 표시합니다.

    현재 이 명령에 대한 표준 구현은 없습니다. 각 CView파생 클래스에 대해 이를 구현해야 합니다.

    CEditView 는 구현 도우미 함수 OnEditFindReplace 를 호출하여 프라이빗 구현 변수에 이전 찾기/바꾸기 설정을 사용하고 저장하는 이 명령의 구현을 제공합니다. 클래스 CFindReplaceDialog 는 사용자에게 메시지를 표시하기 위한 모덜리스 대화 상자를 관리하는 데 사용됩니다.

    이 명령을 구현하도록 선택하는 경우 이 명령 ID를 사용하는 것이 좋습니다.

  • ID_EDIT_PASTE 현재 클립보드 내용을 삽입합니다.

    현재 이 명령에 대한 표준 구현은 없습니다. 각 CView파생 클래스에 대해 이를 구현해야 합니다.

    CEditView는 선택한 텍스트를 CEdit::Paste로 대체하면서 현재 클립보드 데이터를 복사하는 이 명령의 구현을 제공합니다. 클립보드에 CF_TEXT 없는 경우 명령을 사용할 수 없습니다.

    COleClientDoc 이 명령에 대한 업데이트 명령 UI 처리기만 제공합니다. 클립보드에 포함할 수 있는 OLE 항목/개체가 없으면 명령이 비활성화됩니다. 실제 붙여넣기를 수행하려면 실제 명령에 대한 처리기를 작성해야 합니다. OLE 애플리케이션이 다른 형식을 붙여넣을 수도 있는 경우 보기 또는 문서에 고유한 업데이트 명령 UI 처리기를 제공해야 합니다(즉, 명령 대상 라우팅 이전 COleClientDoc 의 어딘가에 있음).

    이 명령을 구현하도록 선택하는 경우 이 명령 ID를 사용하는 것이 좋습니다.

    표준 OLE 구현을 대체하려면 .를 사용합니다 COleClientItem::CanPaste.

  • ID_EDIT_PASTE_LINK 현재 클립보드 내용의 링크를 삽입합니다.

    현재 이 명령에 대한 표준 구현은 없습니다. 각 CView파생 클래스에 대해 이를 구현해야 합니다.

    COleDocument 이 명령에 대한 업데이트 명령 UI 처리기만 제공합니다. 클립보드에 연결 가능한 OLE 항목/개체가 없으면 명령이 비활성화됩니다. 실제 붙여넣기를 수행하려면 실제 명령에 대한 처리기를 작성해야 합니다. OLE 애플리케이션이 다른 형식을 붙여넣을 수도 있는 경우 보기 또는 문서에 고유한 업데이트 명령 UI 처리기를 제공해야 합니다(즉, 명령 대상 라우팅 이전 COleDocument 의 어딘가에 있음).

    이 명령을 구현하도록 선택하는 경우 이 명령 ID를 사용하는 것이 좋습니다.

    표준 OLE 구현을 대체하려면 .를 사용합니다 COleClientItem::CanPasteLink.

  • ID_EDIT_PASTE_SPECIAL 옵션이 있는 현재 클립보드 내용을 삽입합니다.

    현재 이 명령에 대한 표준 구현은 없습니다. 각 CView파생 클래스에 대해 이를 구현해야 합니다. MFC는 이 대화 상자를 제공하지 않습니다.

    이 명령을 구현하도록 선택하는 경우 이 명령 ID를 사용하는 것이 좋습니다.

  • ID_EDIT_REPEAT 마지막 작업을 반복합니다.

    현재 이 명령에 대한 표준 구현은 없습니다. 각 CView파생 클래스에 대해 이를 구현해야 합니다.

    CEditView 는 마지막 찾기 작업을 반복하는 이 명령의 구현을 제공합니다. 마지막 찾기에 대한 프라이빗 구현 변수가 사용됩니다. 찾기를 시도할 수 없는 경우 명령을 사용할 수 없습니다.

    이 명령을 구현하도록 선택하는 경우 이 명령 ID를 사용하는 것이 좋습니다.

  • ID_EDIT_REPLACE 바꾸기 작업을 시작하고 모덜리스 바꾸기 대화 상자를 표시합니다.

    현재 이 명령에 대한 표준 구현은 없습니다. 각 CView파생 클래스에 대해 이를 구현해야 합니다.

    CEditView 는 구현 도우미 함수 OnEditFindReplace 를 호출하여 프라이빗 구현 변수에 이전 찾기/바꾸기 설정을 사용하고 저장하는 이 명령의 구현을 제공합니다. 클래스 CFindReplaceDialog 는 사용자에게 메시지를 표시하는 모덜리스 대화 상자를 관리하는 데 사용됩니다.

    이 명령을 구현하도록 선택하는 경우 이 명령 ID를 사용하는 것이 좋습니다.

  • ID_EDIT_SELECT_ALL 전체 문서를 선택합니다.

    현재 이 명령에 대한 표준 구현은 없습니다. 각 CView파생 클래스에 대해 이를 구현해야 합니다.

    CEditView 는 문서의 모든 텍스트를 선택하는 이 명령의 구현을 제공합니다. 선택할 텍스트가 없으면 명령을 사용할 수 없습니다.

    이 명령을 구현하도록 선택하는 경우 이 명령 ID를 사용하는 것이 좋습니다.

  • ID_EDIT_UNDO 마지막 작업을 실행 취소합니다.

    현재 이 명령에 대한 표준 구현은 없습니다. 각 CView파생 클래스에 대해 이를 구현해야 합니다.

    CEditView 를 사용하여 CEdit::Undo이 명령의 구현을 제공합니다. CEdit::CanUndo가 FALSE를 반환하면 명령을 사용할 수 없습니다.

    이 명령을 구현하도록 선택하는 경우 이 명령 ID를 사용하는 것이 좋습니다.

  • ID_EDIT_REDO 마지막 작업을 다시 실행합니다.

    현재 이 명령에 대한 표준 구현은 없습니다. 각 CView파생 클래스에 대해 이를 구현해야 합니다.

    이 명령을 구현하도록 선택하는 경우 이 명령 ID를 사용하는 것이 좋습니다.

  • ID_WINDOW_NEW 현재 문서에서 다른 창을 엽니다.

    CMDIFrameWnd::OnWindowNew 는 현재 문서의 문서 서식 파일을 사용하여 현재 문서의 다른 보기를 포함하는 다른 프레임을 만들어 이 강력한 기능을 구현합니다.

    대부분의 MDI(문서 인터페이스) 창 메뉴 명령과 마찬가지로 활성 MDI 자식 창이 없으면 명령을 사용할 수 없습니다.

    이 명령 처리기의 사용자 지정은 권장되지 않습니다. 추가 보기 또는 프레임 창을 만드는 명령을 제공하려는 경우 사용자 고유의 명령을 만드는 것이 더 나을 수 있습니다. 코드를 CMDIFrameWnd::OnWindowNew 복제하여 특정 프레임으로 수정하고 원하는 클래스를 볼 수 있습니다.

  • ID_WINDOW_ARRANGE MDI 창 아래쪽에 있는 아이콘을 정렬합니다.

    CMDIFrameWnd 는 구현 도우미 함수 OnMDIWindowCmd에서 이 표준 MDI 명령을 구현합니다. 이 도우미는 명령 ID를 MDI Windows 메시지에 매핑하므로 많은 코드를 공유할 수 있습니다.

    대부분의 MDI 창 메뉴 명령과 마찬가지로 활성 MDI 자식 창이 없으면 명령을 사용할 수 없습니다.

    이 명령 처리기의 사용자 지정은 권장되지 않습니다.

  • ID_WINDOW_CASCADE 겹치도록 캐스케이드 창을 표시합니다.

    CMDIFrameWnd 는 구현 도우미 함수 OnMDIWindowCmd에서 이 표준 MDI 명령을 구현합니다. 이 도우미는 명령 ID를 MDI Windows 메시지에 매핑하므로 많은 코드를 공유할 수 있습니다.

    대부분의 MDI 창 메뉴 명령과 마찬가지로 활성 MDI 자식 창이 없으면 명령을 사용할 수 없습니다.

    이 명령 처리기의 사용자 지정은 권장되지 않습니다.

  • ID_WINDOW_TILE_HORZ 창을 가로로 배치합니다.

    이 명령은 CMDIFrameWnd에서, ID_WINDOW_CASCADE와 동일한 방식으로 구현되지만, 다른 MDI Windows 메시지가 사용됩니다.

    애플리케이션의 기본 타일 방향을 선택해야 합니다. 이 작업은 창 "타일" 메뉴 항목의 ID를 ID_WINDOW_TILE_HORZ 또는 ID_WINDOW_TILE_VERT 변경하여 수행할 수 있습니다.

  • ID_WINDOW_TILE_VERT 명령은 창을 세로로 배열합니다.

    이 명령은 CMDIFrameWnd에서, ID_WINDOW_CASCADE와 동일한 방식으로 구현되지만, 다른 MDI Windows 메시지가 사용됩니다.

    애플리케이션의 기본 타일 방향을 선택해야 합니다. 이 작업은 창 "타일" 메뉴 항목의 ID를 ID_WINDOW_TILE_HORZ 또는 ID_WINDOW_TILE_VERT 변경하여 수행할 수 있습니다.

  • 키보드 인터페이스 ID_WINDOW_SPLIT는 분할기에 속합니다.

    CViewCSplitterWnd 구현에 대해 이 명령을 처리합니다. 뷰가 분할자 창의 일부인 경우 이 명령은 구현 함수 CSplitterWnd::DoKeyboardSplit에 위임됩니다. 그러면 키보드 사용자가 분할자 창을 분할하거나 풀 수 있는 모드로 분할자가 배치됩니다.

    이 명령은 뷰가 분할자 안에 없는 경우 사용하지 않도록 설정됩니다.

    이 명령 처리기의 사용자 지정은 권장되지 않습니다.

  • ID_APP_ABOUT 정보 대화 상자를 호출합니다.

    애플리케이션의 정보 상자에 대한 표준 구현은 없습니다. 기본 AppWizard에서 만든 애플리케이션은 애플리케이션에 대한 사용자 지정 대화 상자 클래스를 만들고 이를 정보 상자로 사용합니다. 또한 AppWizard는 이 명령을 처리하고 대화 상자를 호출하는 간단한 명령 처리기를 작성합니다.

    거의 항상 이 명령을 구현합니다.

  • ID_APP_EXIT 애플리케이션을 종료합니다.

    CWinApp::OnAppExit 는 애플리케이션의 주 창에 WM_CLOSE 메시지를 전송하여 이 명령을 처리합니다. 애플리케이션의 정상적인 종료(변경된 파일 등에 대한 메시지 표시)는 CFrameWnd 구현에서 처리됩니다.

    이 명령 처리기의 사용자 지정은 권장되지 않습니다. CWinApp::SaveAllModified 또는 CFrameWnd 닫기 논리를 재정의하는 것이 좋습니다.

    이 명령을 구현하도록 선택하는 경우 이 명령 ID를 사용하는 것이 좋습니다.

  • ID_HELP_INDEX는 HLP 파일의 도움말 항목을 나열합니다.

    비고

    기능을 활성화하려면 CWinApp 파생 클래스의 메시지 맵에 여기에 연결해야 합니다.

    CWinApp::OnHelpIndex 는 사소한 호출 CWinApp::WinHelp을 통해 이 명령을 처리합니다.

    이 명령 처리기의 사용자 지정은 권장되지 않습니다.

  • ID_HELP_USING 도움말을 사용하는 방법에 대한 도움말을 표시합니다.

    비고

    기능을 활성화하려면 CWinApp 파생 클래스의 메시지 맵에 여기에 연결해야 합니다.

    CWinApp::OnHelpUsing 는 사소한 호출 CWinApp::WinHelp을 통해 이 명령을 처리합니다.

    이 명령 처리기의 사용자 지정은 권장되지 않습니다.

  • ID_CONTEXT_HELP SHIFT-F1 도움말 모드를 입력합니다.

    비고

    기능을 활성화하려면 CWinApp 파생 클래스의 메시지 맵에 여기에 연결해야 합니다.

    CWinApp::OnContextHelp 는 도움말 모드 커서를 설정하고, 모달 루프를 입력하고, 사용자가 도움을 받을 창을 선택할 때까지 대기하여 이 명령을 처리합니다. MFC 도움말 구현에 대한 자세한 내용은 기술 참고 28 을 참조하세요.

    이 명령 처리기의 사용자 지정은 권장되지 않습니다.

  • ID_HELP 현재 컨텍스트에 대한 도움말 제공

    비고

    기능을 활성화하려면 CWinApp 파생 클래스의 메시지 맵에 여기에 연결해야 합니다.

    CWinApp::OnHelp 는 현재 애플리케이션 컨텍스트에 적합한 도움말 컨텍스트를 가져오면 이 명령을 처리합니다. 간단한 F1 도움말, 메시지 상자에 대한 도움말 등을 처리합니다. MFC 도움말 구현에 대한 자세한 내용은 Technical Note 28 을 참조하세요.

    이 명령 처리기의 사용자 지정은 권장되지 않습니다.

  • ID_DEFAULT_HELP 컨텍스트에 대한 기본 도움말 표시

    비고

    기능을 활성화하려면 CWinApp 파생 클래스의 메시지 맵에 여기에 연결해야 합니다.

    이 명령은 일반적으로 .에 매핑됩니다 CWinApp::OnHelpIndex.

    기본 도움말과 도움말 인덱스 간의 구분이 필요한 경우 다른 명령 처리기를 제공할 수 있습니다.

  • ID_NEXT_PANE 다음 창으로 이동

    CViewCSplitterWnd 구현에 대해 이 명령을 처리합니다. 뷰가 분할자 창의 일부인 경우 이 명령은 구현 함수 CSplitterWnd::OnNextPaneCmd에 위임됩니다. 그러면 현재 보기가 분할자의 다음 창으로 이동합니다.

    보기가 분할자 안에 없거나 다음 창이 없는 경우 이 명령을 사용할 수 없습니다.

    이 명령 처리기의 사용자 지정은 권장되지 않습니다.

  • ID_PREV_PANE 이전 창으로 이동

    CViewCSplitterWnd 구현에 대해 이 명령을 처리합니다. 뷰가 분할자 창의 일부인 경우 이 명령은 구현 함수 CSplitterWnd::OnNextPaneCmd에 위임됩니다. 그러면 현재 보기가 분할자의 이전 창으로 이동합니다.

    보기가 스플리터 안에 없거나 이전 창으로 이동할 수 없는 경우 이 명령은 비활성화됩니다.

    이 명령 처리기의 사용자 지정은 권장되지 않습니다.

  • ID_OLE_INSERT_NEW 새 OLE 개체 삽입

    현재 이 명령에 대한 표준 구현은 없습니다. 새 OLE 항목/개체를 현재 선택 영역에 삽입하기 위해서는 CView 파생 클래스를 구현해야 합니다.

    모든 OLE 클라이언트 애플리케이션은 이 명령을 구현해야 합니다. AppWizard는 OLE 옵션을 사용하여 완료해야 하는 뷰 클래스의 OnInsertObject 기본 구현을 만듭니다.

    이 명령의 전체 구현은 MFC OLE 샘플 OCLIENT 예제를 참조하세요.

  • ID_OLE_EDIT_LINKS OLE 링크 편집

    COleDocument 는 표준 OLE 링크 대화 상자의 MFC 제공 구현을 사용하여 이 명령을 처리합니다. 이 대화 상자의 구현은 클래스를 통해 액세스됩니다 COleLinksDialog . 현재 문서에 링크가 없으면 명령을 사용할 수 없습니다.

    이 명령 처리기의 사용자 지정은 권장되지 않습니다.

  • ID_OLE_VERB_FIRST...LAST OLE 동사의 ID 범위

    COleDocument 는 현재 선택한 OLE 항목/개체에서 지원하는 동사에 대해 이 명령 ID 범위를 사용합니다. 지정된 OLE 항목/개체 형식이 0개 이상의 사용자 지정 동사를 지원할 수 있으므로 범위여야 합니다. 애플리케이션의 메뉴에는 ID_OLE_VERB_FIRST ID를 가진 메뉴 항목이 하나 있어야 합니다. 프로그램을 실행하면 적절한 메뉴 동사 설명(또는 많은 동사가 있는 팝업 메뉴)으로 메뉴가 업데이트됩니다. OLE 메뉴의 관리는 AfxOleSetEditMenu에 의해 처리되며, 이 명령에 대한 업데이트 명령 UI 처리기에서 수행됩니다.

    이 범위의 각 명령 ID를 처리하기 위한 명시적 명령 처리기는 없습니다. COleDocument::OnCmdMsg는 이 범위의 모든 명령 ID를 포착하여 0 기준 동사 번호로 변환하고, COleClientItem::DoVerb을 사용하여 해당 동사의 서버를 시작하도록 재정의됩니다.

    사용자 지정 또는 이 명령 ID 범위의 다른 사용은 권장되지 않습니다.

  • ID_VIEW_TOOLBAR 도구 모음을 켜고 끕니다.

    CFrameWnd는 이 명령과 업데이트 명령 UI 처리기를 사용하여 도구 모음의 표시 여부를 전환합니다. 도구 모음은 AFX_IDW_TOOLBAR 자식 창 ID를 가진 프레임의 자식 창이어야 합니다. 명령 처리기는 실제로 도구 모음 창의 표시 유형을 전환합니다. CFrameWnd::RecalcLayout 는 새 상태의 도구 모음을 사용하여 프레임 창을 다시 그리는 데 사용됩니다. 업데이트 명령 UI 처리기는 도구 모음이 표시되면 메뉴 항목을 확인합니다.

    이 명령 처리기의 사용자 지정은 권장되지 않습니다. 추가 도구 모음을 추가하려는 경우 이 명령에 대한 명령 처리기 및 update-command UI 처리기를 복제하고 수정해야 합니다.

  • ID_VIEW_STATUS_BAR 상태 표시줄을 켜고 끕니다.

    이 명령은 CFrameWnd에서 구현됩니다. ID_VIEW_TOOLBAR과 유사하지만 다른 자식 창 ID(AFX_IDW_STATUS_BAR)가 사용됩니다.

Update-Only 명령 처리기

여러 표준 명령 ID는 상태 표시줄에서 표시기로 사용됩니다. 동일한 업데이트 명령 UI 처리 메커니즘을 사용하여 애플리케이션 유휴 시간 동안 현재 시각적 상태를 표시합니다. 사용자가 선택할 수 없으므로(즉, 상태 표시줄 창을 푸시할 수 없음) 이러한 명령 ID에 대한 ON_COMMAND 처리기가 있는 것은 의미가 없습니다.

  • ID_INDICATOR_CAPS: CAP 잠금 표시기입니다.

  • ID_INDICATOR_NUM: NUM 잠금 표시기입니다.

  • ID_INDICATOR_SCRL: SCRL 잠금 표시기입니다.

  • ID_INDICATOR_KANA: KANA 잠금 표시기(일본 시스템에만 적용됨)

이 세 가지 모두 명령 ID를 CFrameWnd::OnUpdateKeyIndicator사용하여 적절한 가상 키에 매핑하는 구현 도우미에서 구현됩니다. 일반적인 구현은 적절한 가상 키가 현재 잠겨 있는지 여부에 따라 개체를 사용하거나 사용하지 않도록 설정합니다(상태 창 사용 안 함 = 텍스트 없음) CCmdUI .

이 명령 처리기의 사용자 지정은 권장되지 않습니다.

  • ID_INDICATOR_EXT: 확장 선택 표시기입니다.

  • ID_INDICATOR_OVR: OVeRstrike 표시기입니다.

  • ID_INDICATOR_REC: 녹음 표시기입니다.

현재 이러한 지표에 대한 표준 구현은 없습니다.

이러한 표시기를 구현하도록 선택하는 경우 이러한 표시기 ID를 사용하고 상태 표시줄에서 표시기의 순서를 유지하는 것이 좋습니다(즉, 이 순서로 EXT, CAP, NUM, SCRL, OVR, REC).

참고하십시오

숫자로 된 기술 노트
범주별 기술 정보