이 노트에서는 MFC 2.0에서 제공 되는 표준 명령 구현을 설명 합니다. 이후 많은 표준 명령을 구현 하는 데 사용 하는 메커니즘을 설명 하는 기술 노트 21 을 먼저 읽고 반드시。
이 설명에는 MFC 아키텍처, Api를, 그리고 일반적인 프로그래밍 연습의 지식이 있다고 가정 합니다. Api는 문서화 뿐만 아니라 문서화 "구현"만 설명 합니다. 이의 기능 또는 MFC에서 프로그래밍 하는 방법에 대해 배울 수 시작 하는 장소가 아니다. Visual c + + 프로그래머 가이드 보다 일반적인 정보 및 문서화 된 Api의 세부 정보를 참조 하십시오。
문제
MFC 헤더 파일 AFXRES에에서 많은 표준 명령 Id를 정의합니다.이러한 명령에 대 한 헤 프레임 워크 지원에 따라 다릅니다. 프레임 워크의 내부적으로 작동 하지만 표준 구현을 사용자 지정 하 고 잘하면 명령 처리기를 구현 하는 몇 가지 기술을 가르쳐 하는 방법에 유용한 정보를 제공할 것입니다 어떻게 보여줄 뿐만 아니라 프레임 워크 클래스 처리 이러한 명령을 지 어디서 및 어떻게 understanding。
이 기술 노트의 내용
각 명령 ID 두 섹션에서 설명 하는:
대부분의 기본 명령을 구현 프레임 워크의 기본 클래스 메시지 맵에서 prewired 있다. 파생된 클래스에서 명시적 배선이 필요로 하는 일부 명령 구현이 있습니다. "Note"에서 설명 되어 있습니다. 생성 된 뼈대 응용 프로그램에서 당신을 위해 이러한 기본 처리기를 연결 됩니다 Appwizard에서 올바른 옵션을 선택한 경우。
명명 규칙
표준 명령 가능 하면 사용 하는 것이 좋습니다 간단한 명명 규칙을 따릅니다. 대부분의 표준 명령 응용 프로그램의 메뉴 모음에서 표준 위치에 있습니다. 명령어의 심볼 이름 시작 "ID_" 표준 팝업 메뉴 이름, 메뉴 항목 이름 뒤에 옵니다. 기호 이름이 밑줄 단어 줄바꿈으로 대문자입니다. 표준 메뉴 항목 이름이 없는 명령에 대 한 논리적인 명령 이름을 정의 "ID_" (예를 들어, ID_NEXT_PANE)로 시작。
접두사 "ID_" '을 사용 하 여 명령을 메뉴 항목, 도구 모음 단추 또는 다른 명령 사용자 인터페이스 개체에 바인딩할 수 있도록 설계를 나타냅니다. 명령 처리기 "ID_" 명령 처리 MFC 명령 아키텍처의 ON_COMMAND 및 ON_UPDATE_COMMAND_UI 메커니즘을 사용 해야。
표준 "IDM_" 접두사를 사용 하 여 메뉴 항목 명령 아키텍처에 따라 및 메뉴 관련 코드를 활성화 하 고 비활성화 해야 하는 것이 좋습니다. 물론 메뉴의 특정 명령 수가 작은 되어야 이후 다음 MFC 명령 아키텍처 뿐만 아니라 (이후 그들은 도구 모음과 작동) 명령 처리기를 더 강력 하 게 하지만 명령 처리기 코드를 재사용할 수。
ID 범위
MFC에서 ID 범위를 사용 하 여에 대 한 자세한 내용은 기술 노트 20 를 참조 하십시오。
MFC 표준 명령 범위 0xE000 0xefff가을. 제발에 의존 하지 마십시오 이러한 Id의 특정 값 때문에 그들은 라이브러리의 향후 버전에서 변경 될 수 있습니다。
응용 프로그램 범위 0x8000 0xDFFF 명령을 정의 해야。
표준 명령 Id
각 명령 ID에 대 한 표준 메시지 줄 프롬프트 문자열 파일 프롬프트에서 찾을 수 있다.RC입니다. 해당 메뉴 음성 안내에 대 한 문자열 ID 명령 ID와 동일 하 게 해야 합니다.
메모nbsp;CWinApp이 연결 해야 합니다-이 기능을 사용 하려면 클래스의 메시지 맵을 파생(&N)。
CWinApp::OnFileNew 응용 프로그램에서 다르게 문서 서식 파일의 수에 따라이 명령을 구현합니다. CWinApp::OnFileNew 적절 한 프레임 및 뷰 클래스 뿐만 아니라 해당 유형의 새 문서를 만들 것입니다 하나만 CDocTemplate경우。
하나 이상의 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을 정의 해야 하는 경우에。
메모nbsp;CWinApp이 연결 해야 합니다-이 기능을 사용 하려면 클래스의 메시지 맵을 파생(&N)。
CWinApp::OnFileOpen 는 매우 간단한 구현의 CWinApp::DoPromptFileName 뒤에 CWinApp::OpenDocumentFile 파일의 파일 또는 경로 이름을 가진 열을 호출 합니다. CWinApp 구현 루틴 DoPromptFileName 표준 FileOpen 대화 상자와 현재 문서 템플릿에서 가져온 파일 확장명으로 채웁니다.
ID_FILE_OPEN 하나의 일반적인 사용자 지정 FileOpen 대화 상자를 사용자 지정 하거나 추가 파일 필터를 추가 하는 것입니다. 이 사용자 지정 하는 것이 좋습니다 자신의 FileOpen 대화 기본 구현을 바꿉니다 문서 파일 또는 경로 이름으로 CWinApp::OpenDocumentFile 를 호출 하는 것입니다. 기본 클래스를 호출 하는 아무 필요도 없다。
CDocument::OnFileClose 는 수정 된 및 다음 OnCloseDocument을 호출 하는 경우 문서를 저장 하 라는 메시지를 CDocument::SaveModified 를 호출 합니다. 문서, 파괴를 포함 한 모든 닫는 논리 OnCloseDocument 루틴에서 이루어집니다.
메모nbsp;WM_CLOSE 메시지 또는 문서 프레임 창에 전달 하는 SC_CLOSE 시스템 명령에서 다르게 ID_FILE_CLOSE 행위. 창 닫기는 문서를 보여주는 마지막 프레임 창의 경우에 문서를 닫습니다 것 이다. 문서를 닫으면 ID_FILE_CLOSE 만 문서를 닫습니다 되지 않습니다 하지만 문서를 보여주는 모든 프레임 창의 닫을 것 이다(&N)。
구현 CDocument::DoSave OnFileSave 와 OnFileSaveAs모두에 사용 되는 도우미 루틴을 사용 합니다. 전에 저장 하지 않은 문서를 저장 하는 경우 (즉, 없는 경로 이름을 파일의 경우 처럼) 또는 읽기 전용 문서에서 읽은 그, OnFileSave 논리 ID_FILE_SAVE_AS 명령 처럼 행동 하 고 새 파일 이름을 제공 하기 위해 사용자에 게 있습니다. 파일을 열고 저장 하 고 실제 프로세스 가상 함수 OnSaveDocument 통해 이루어집니다.
두 가지 일반적인 이유는 ID_FILE_SAVE를 사용자 지정할 수 있습니다. 문서를 저장 하지 않습니다, 단순히 제거 ID_FILE_SAVE 메뉴 항목 및 도구 모음 단추를 사용자 인터페이스에서. 또한 문서 (즉, 안 전화 CDocument::SetModifiedFlag)을 결코 더러운 및 프레임 워크를 저장할 문서 발생 하지 있는지 확인 합니다. 어딘가 디스크 파일 이외의 새로운 명령을 해당 작업에 대 한 정의를 저장 하는 문서에 대 한。
COleServerDoc의 경우 ID_FILE_SAVE 는 모두 (일반 문서)에 대 한 파일 저장 (포함 된 문서)에 대 한 파일 업데이트에 대 한。
문서 데이터는 개별 디스크 파일에 저장 하지만 기본 사용 하는 경우 CDocument serialize 구현, OnFileSave 대신 CDocument::OnSaveDocument 을 재정의 해야。
CDocument::OnFileSaveAs 구현 OnFileSave와 같은 CDocument::DoSave 도우미 루틴을 사용합니다. 문서를 저장 하기 전에 파일 이름 없이 있었다면 OnFileSaveAs 명령은 ID_FILE_SAVE 와 마찬가지로 처리 됩니다. 일반 문서 데이터 파일을 저장 하는 논리를 구현 하는 COleServerDoc::OnFileSaveAs 를 서버 문서 저장 OLE 개체를 나타내는 포함 되거나 일부 다른 응용 프로그램을 별도 파일로。
ID_FILE_SAVE의 논리를 사용자 지정 하는 경우 비슷한 방식 ID_FILE_SAVE_AS 을 사용자 지정 하려면 아마 또는 "다른 이름으로 저장" 작업 문서에 적용 되지 않을 수 있습니다. 필요 하지 않은 경우 귀하의 메뉴 표시줄에서 메뉴 항목을 제거할 수 있습니다.
COleServerDoc::OnFileSaveCopyAs 구현은 제외 하 고는 문서 개체가 연결 되지 않은"" 원본 파일을 저장 한 후 CDocument::OnFileSaveAs, 매우 비슷합니다. 즉, 메모리에 문서가 수정 된 경우"" 저장 하기 전에, 그것은 여전히 "수정". 또한이 명령은 경로 이름이 나 문서에 저장 하는 제목에는 영향을 주지 않습니다.
COleServerDoc::OnUpdateDocument 구현 단순히 notifiies 포함 저장 하는 컨테이너. 컨테이너에서 포함 된 개체를 저장 하기 위해 적절 한 OLE Api 호출。
현재이 대화 상자에 대 한 표준입니다 및 프레임 워크는이 명령의 기본 구현이 없습니다.
이 명령을 구현 하기로 하는 경우이 명령 ID를 사용 하 여 것이 좋습니다.
메모nbsp;CWinApp이 연결 해야 합니다-이 기능을 사용 하려면 클래스의 메시지 맵을 파생(&N)。
사용자 지정 프린터와 인쇄 설정에 대 한 최소 사용자 수 있도록 하는 표준 인쇄 설정 대화 상자를 호출 하는이 명령은 대부분에서이 응용 프로그램의 모든 문서 또는이 문서. 전체 시스템에 대 한 기본 프린터 설정을 변경 하려면 [컨트롤] 패널을 사용 해야 합니다.
CWinApp::OnFilePrintSetup 은 매우 간단한 구현 하는 CPrintDialog 개체를 만들고 CWinApp::DoPrintDialog 구현 함수를 호출 합니다. 이 설정 하는 응용 프로그램 기본 프린터 설정。
이 명령을 사용자 지정 하는 일반적인 필요 저장 될 때 문서와 함께 저장 해야 문서 당 프린터 설정을 허용 하는 것입니다. CPrintDialog 개체를 만들고, 적절 한 프린터 특성 (보통 hDevMode 및 hDevNames)으로 초기화 합니다 CDocument 클래스에 메시지 맵 처리기를 추가 해야이 CPrintDialog::DoModal, 호출 하 고 변경 된 프린터 설정을 저장 합니다. 강력한 구현에 대 한 확인 해야 할 CWinApp::DoPrintDialog 의 구현에 재치 있는 기본값 처리 및 시스템 전반의 프린터 변경 내용 추적에 대 한 오류 및 CWinApp::UpdatePrinterSelection 를 감지。
메모nbsp;CView이 연결 해야 합니다-이 기능을 사용 하려면 클래스의 메시지 맵을 파생(&N)。
이 명령은 현재 문서를 인쇄 하거나 더 올바르게 표준 인쇄 대화 상자를 호출 하 고 실행 하는 인쇄 엔진을 포함 하는 인쇄 프로세스를 시작。
CView::OnFilePrint 이 명령 및 주요 인쇄 루프를 구현합니다. 인쇄 대화 상자에 대 한 사용자의 프롬프트 가상 CView::OnPreparePrinting 를 호출 합니다. 다음 출력 DC 프린터에 갈 준비 및 인쇄 진행률 대화 상자 (AFX_IDD_PRINTDLG) 고, StartDoc 이스케이프 프린터에 보냅니다. CView::OnFilePrint 에 메인 페이지 방향 인쇄 루프를 포함 되어 있습니다. 각 페이지에 대 한 뒤에 StartPage 탈출 하 고 해당 페이지에 대 한 가상 CView::OnPrint 호출 가상 CView::OnPrepareDC 를 호출 합니다. 완료 되 면 가상 CView::OnEndPrinting 를 호출 하 고 인쇄 진행률 대화 상자를 닫을。
MFC 인쇄 아키텍처는 인쇄 및 인쇄 미리 보기에 대 한 여러 가지 방법으로 연결 하도록 설계 되었습니다. 당신은 일반적으로 다양 한 CView overridable 기능을 모든 페이지 방향 인쇄 작업에 대 한 적절 한 찾을 것입니다. 비-페이지 지향 출력 프린터를 사용 하 여 응용 프로그램의 경우에 당신이 찾아야한다 ID_FILE_PRINT 구현을 바꿀 필요를。
메모nbsp;CView이 연결 해야 합니다-이 기능을 사용 하려면 클래스의 메시지 맵을 파생(&N)。
CView::OnFilePrintPreview CView::DoPrintPreview문서화 된 도우미 함수를 호출 하 여 인쇄 미리 보기 모드를 시작 합니다. CView::DoPrintPreview OnFilePrint 는 인쇄 루프에 대 한 주요 엔진 처럼 인쇄 미리 보기 루프에 대 한 주요 엔진 이다。
DoPrintPreview에 다른 매개 변수를 전달 하 여 다양 한 방법으로 인쇄 미리 보기 작업을 사용자 지정할 수 있습니다. 기술 참고 30, 인쇄 미리 보기 및 사용자 지정 하는 방법의 세부 사항에 설명 하는 참조 하십시오。
CWinApp::OnUpdateRecentFileMenu ON_UPDATE_COMMAND_UI 메커니즘의 고급 용도 중 하나는 업데이트 명령 UI 처리기입니다. 메뉴 리소스에만 ID ID_FILE_MRU_FILE1와 함께 단일 메뉴 항목을 정의 필요 합니다. 해당 메뉴 항목은 처음 사용 안 함。
로 MRU 목록을 성장, 더 많은 메뉴 항목이 목록에 추가 됩니다. 4 개의 대부분의 표준도 표준 CWinApp 구현 기본값으로 최근에 사용한 파일. 크거나 작은 값을 사용 하 여 CWinApp::LoadStdProfileSettings 를 호출 하 여 기본값을 변경할 수 있습니다. MRU 목록에는 응용 프로그램에 저장 됩니다.INI 파일입니다. 목록 LoadStdProfileSettings, 호출 응용 프로그램을 끝낼 때 저장 하는 경우 응용 프로그램의 InitInstance 함수에서 로드 됩니다. MRU 업데이트 명령 UI 처리기 또한 파일 메뉴에 표시에 대 한 상대 경로를 절대 경로 변환 됩니다.
CWinApp::OnOpenRecentFile 는 실제 명령을 수행 하는 ON_COMMAND 처리기입니다. 그것은 단순히 MRU 목록에서 호출 CWinApp::OpenDocumentFile, 파일을 열고 MRU 목록 업데이트의 모든 작업을 수행 하는 파일 이름을 가져옵니다.
이 명령 처리기의 사용자 지정 권장 되지 않습니다.
현재이 명령에 대 한 표준 구현이 없기는. 각 CView에 대 한이 구현 해야 합니다-파생 클래스。
CEditView 에 CEdit::Clear를 사용 하 여이 명령의 구현을 제공 합니다. 현재 선택 영역이 없는 경우 명령이 비활성화 되어。
이 명령을 구현 하기로 하는 경우이 명령 ID를 사용 하 여 것이 좋습니다.
현재이 명령에 대 한 표준 구현이 없기는. 각 CView에 대 한이 구현 해야 합니다-파생 클래스。
이 명령을 구현 하기로 하는 경우이 명령 id입니다.를 사용 하 여 것이 좋습니다. MFC 자습서 샘플 참조 하십시오 예제 구현에 대 한 낙서。
현재이 명령에 대 한 표준 구현이 없기는. 각 CView에 대 한이 구현 해야 합니다-파생 클래스。
CEditView 로 CF_TEXT CEdit::Copy를 사용 하 여 현재 선택 된 텍스트를 클립보드에 복사 하는이 명령의 구현을 제공 합니다. 현재 선택 영역이 없는 경우 명령이 비활성화 되어。
이 명령을 구현 하기로 하는 경우이 명령 ID를 사용 하 여 것이 좋습니다.
현재이 명령에 대 한 표준 구현이 없기는. 각 CView에 대 한이 구현 해야 합니다-파생 클래스。
CEditView 에 현재 선택 된 텍스트를 잘라 내어 클립보드 CF_TEXT로 CEdit::Cut를 사용 하 여이 명령의 구현을 제공 합니다. 현재 선택 영역이 없는 경우 명령이 비활성화 되어。
이 명령을 구현 하기로 하는 경우이 명령 ID를 사용 하 여 것이 좋습니다.
현재이 명령에 대 한 표준 구현이 없기는. 각 CView에 대 한이 구현 해야 합니다-파생 클래스。
CEditView 에이 명령을 사용 하 여 개인 구현 변수에 이전 찾기/바꾸기 설정 저장 OnEditFindReplace 구현 도우미 함수를 호출 하는 구현을 제공 합니다. CFindReplaceDialog 클래스 사용자에 게 묻지 모덜리스 대화 상자를 관리 하는 데。
이 명령을 구현 하기로 하는 경우이 명령 ID를 사용 하 여 것이 좋습니다.
현재이 명령에 대 한 표준 구현이 없기는. 각 CView에 대 한이 구현 해야 합니다-파생 클래스。
CEditView 에 CEdit::Paste를 사용 하 여 선택한 텍스트를 교체 하는 현재 클립보드 데이터를 복사 하는이 명령의 구현을 제공 합니다. 클립보드에 아무 CF_TEXT 경우 명령이 비활성화 되어。
단지 COleClientDoc 이 명령에 대 한 업데이트 명령 UI 처리기를 제공합니다. 클립보드에 embeddable OLE 항목/개체가 없으면이 명령은 사용할 수 없게 됩니다. 실제 붙여넣기 할 실제 명령에 대 한 처리기를 작성 하는 것에 대 한 책임이 있습니다. OLE 응용 프로그램에는 다른 형식 붙여 넣을 수 있습니다, 보기 또는 문서 (즉, 어딘가에 COleClientDoc 명령에 대상 라우팅 하기 전에) 자신의 업데이트 명령 UI 처리기를 제공 해야。
이 명령을 구현 하기로 하는 경우이 명령 ID를 사용 하 여 것이 좋습니다.
COleClientItem::CanPaste 를 사용 하 여 표준 OLE 구현을 교체 하는 방법에 대 한。
현재이 명령에 대 한 표준 구현이 없기는. 각 CView에 대 한이 구현 해야 합니다-파생 클래스。
COleDocument 그냥이 명령에 대 한 업데이트 명령 UI 처리기를 제공합니다. 클립보드 linkable OLE 항목 개체를 포함 하지 않으므로 명령은 사용할 수 없게 됩니다. 실제 붙여넣기 할 실제 명령에 대 한 처리기를 작성 하는 것에 대 한 책임이 있습니다. OLE 응용 프로그램에는 다른 형식 붙여 넣을 수 있습니다, 보기 또는 문서 (즉, 어딘가에 COleDocument 명령에 대상 라우팅 하기 전에) 자신의 업데이트 명령 UI 처리기를 제공 해야。
이 명령을 구현 하기로 하는 경우이 명령 ID를 사용 하 여 것이 좋습니다.
COleClientItem::CanPasteLink 를 사용 하 여 표준 OLE 구현을 교체 하는 방법에 대 한。
현재이 명령에 대 한 표준 구현이 없기는. 각 CView에 대 한이 구현 해야 합니다-클래스를 파생 합니다. MFC는이 대화 상자를 제공 하지 않습니다.
이 명령을 구현 하기로 하는 경우이 명령 ID를 사용 하 여 것이 좋습니다.
현재이 명령에 대 한 표준 구현이 없기는. 각 CView에 대 한이 구현 해야 합니다-파생 클래스。
CEditView 마지막 찾기 작업을 반복 하려면이 명령의 구현을 제공 합니다. 마지막 찾기에 대 한 개인 구현 변수 사용 됩니다. 명령이 비활성화 되어 있는 경우 찾기 시도 하지 않을 수 있습니다.
이 명령을 구현 하기로 하는 경우이 명령 ID를 사용 하 여 것이 좋습니다.
현재이 명령에 대 한 표준 구현이 없기는. 각 CView에 대 한이 구현 해야 합니다-파생 클래스。
CEditView 에이 명령을 사용 하 여 개인 구현 변수에 이전 찾기/바꾸기 설정 저장 OnEditFindReplace 구현 도우미 함수를 호출 하는 구현을 제공 합니다. CFindReplaceDialog 클래스를 묻는 모덜리스 대화 상자를 관리 하는 데。
이 명령을 구현 하기로 하는 경우이 명령 ID를 사용 하 여 것이 좋습니다.
현재이 명령에 대 한 표준 구현이 없기는. 각 CView에 대 한이 구현 해야 합니다-파생 클래스。
CEditView 에 문서에 있는 모든 텍스트를 선택 하는이 명령의 구현을 제공 합니다. 선택한 텍스트가 없는 경우 명령이 비활성화 되어。
이 명령을 구현 하기로 하는 경우이 명령 ID를 사용 하 여 것이 좋습니다.
현재이 명령에 대 한 표준 구현이 없기는. 각 CView에 대 한이 구현 해야 합니다-파생 클래스。
CEditView CEdit::Undo를 사용 하 여이 명령에 대 한 구현을 제공 합니다. 명령이 비활성화 되어 있는 경우 CEdit::CanUndo 은 FALSE를 반환 합니다.
이 명령을 구현 하기로 하는 경우이 명령 ID를 사용 하 여 것이 좋습니다.
현재이 명령에 대 한 표준 구현이 없기는. 각 CView에 대 한이 구현 해야 합니다-파생 클래스。
이 명령을 구현 하기로 하는 경우이 명령 ID를 사용 하 여 것이 좋습니다.
현재 문서의 다른 뷰를 포함 하는 다른 프레임을 만들려면 현재 문서 문서 서식 파일을 사용 하 여이 강력한 기능을 구현 하는 CMDIFrameWnd::OnWindowNew。
대부분의 다중 문서 인터페이스 (MDI) 창 메뉴 명령 같이 명령이 비활성화 되어 있는 경우 활성 MDI 자식 창이 없습니다.
이 명령 처리기의 사용자 지정은 권장 하지 않습니다. 추가 보기 또는 프레임 창을 만듭니다 명령을 제공 하고자 하는 경우 당신은 아마 좋을 것 이다 당신의 자신의 명령을 발명. CMDIFrameWnd::OnWindowNew 에서 코드를 복제 하 고 원하는대로의 특정 프레임 및 뷰 클래스를 수정할 수 있습니다.
CMDIFrameWnd 구현 도우미 함수 OnMDIWindowCmd에서이 표준 MDI 명령을 구현합니다. 이 도우미 MDI 창 메시지를 명령 Id를 지도 하 고 따라서 많은 코드를 공유할 수 있습니다.
대부분의 MDI 창 메뉴 명령 같이 명령이 비활성화 되어 있는 경우 활성 MDI 자식 창이 없습니다.
이 명령 처리기의 사용자 지정 권장 되지 않습니다.
CMDIFrameWnd 구현 도우미 함수 OnMDIWindowCmd에서이 표준 MDI 명령을 구현합니다. 이 도우미 MDI 창 메시지를 명령 Id를 지도 하 고 따라서 많은 코드를 공유할 수 있습니다.
대부분의 MDI 창 메뉴 명령 같이 명령이 비활성화 되어 있는 경우 활성 MDI 자식 창이 없습니다.
이 명령 처리기의 사용자 지정 권장 되지 않습니다.
이 명령은 ID_WINDOW_CASCADE처럼 CMDIFrameWnd 구현 됩니다., 그리고 다른 MDI 창을 제외 하 고 메시지는 작업에 사용 됩니다.
응용 프로그램에 대 한 기본 타일 방향을 선택 해야 합니다. ID_WINDOW_TILE_HORZ 또는 ID_WINDOW_TILE_VERT 창 "타일" 메뉴 항목에 대 한 ID를 변경 하 여이 할 수 있는。
이 명령은 ID_WINDOW_CASCADE처럼 CMDIFrameWnd 구현 됩니다., 그리고 다른 MDI 창을 제외 하 고 메시지는 작업에 사용 됩니다.
응용 프로그램에 대 한 기본 타일 방향을 선택 해야 합니다. ID_WINDOW_TILE_HORZ 또는 ID_WINDOW_TILE_VERT 창 "타일" 메뉴 항목에 대 한 ID를 변경 하 여이 할 수 있는。
CView CSplitterWnd 구현 위한이 명령을 처리합니다. 보기 분할 창의 일부인 경우이 명령은 것입니다 구현 함수 CSplitterWnd::DoKeyboardSplit대리자입니다. 키보드 사용자는 분할 또는 분할 창 unsplit 수 있도록 모드에 분할자를 배치 됩니다이。
보기는 분할자에 없으면이 명령은 사용할 수 없습니다.
이 명령 처리기의 사용자 지정 권장 되지 않습니다.
응용 프로그램의 정보 상자에 대 한 표준 구현이 없기는 합니다. 기본 AppWizard 작성 응용 프로그램 응용 프로그램에 대 한 사용자 지정 대화 상자 클래스를 생성 하 고 그것을 사용 하 여 소개 상자. Appwizard이이 명령을 처리 하 고 대화 상자를 호출 하는 간단한 명령 처리기를 작성할 수도 것입니다.
당신은 거의 항상이 명령을 구현합니다。
응용 프로그램의 주 창에 WM_CLOSE 메시지를 전송 하 여이 명령을 처리 하는 CWinApp::OnAppExit . 표준 (더러운 파일에 대 한 표시 등) 응용 프로그램의 종료는 CFrameWnd 구현에 의해 처리 됩니다.
이 명령 처리기의 사용자 지정은 권장 하지 않습니다. 권장 논리를 닫는 CWinApp::SaveAllModified 또는 CFrameWnd 재정의。
이 명령을 구현 하기로 하는 경우이 명령 ID를 사용 하 여 것이 좋습니다.
메모nbsp;CWinApp이 연결 해야 합니다-이 기능을 사용 하려면 클래스의 메시지 맵을 파생(&N)。
사소 CWinApp::WinHelp 를 호출 하 여이 명령을 처리 하는 CWinApp::OnHelpIndex。
이 명령 처리기의 사용자 지정 권장 되지 않습니다.
메모nbsp;CWinApp이 연결 해야 합니다-이 기능을 사용 하려면 클래스의 메시지 맵을 파생(&N)。
사소 CWinApp::WinHelp 를 호출 하 여이 명령을 처리 하는 CWinApp::OnHelpUsing。
이 명령 처리기의 사용자 지정 권장 되지 않습니다.
메모nbsp;CWinApp이 연결 해야 합니다-이 기능을 사용 하려면 클래스의 메시지 맵을 파생(&N)。
도움말 모드 커서를 설정 하 고 모달 루프를 입력 창에 도움말을 선택 하는 사용자에 대 한 대기 하 여이 명령을 처리 하는 CWinApp::OnContextHelp . MFC 도움말 구현에 대 한 자세한 내용은 기술 노트 28 참조 하십시오。
이 명령 처리기의 사용자 지정 권장 되지 않습니다.
메모nbsp;CWinApp이 연결 해야 합니다-이 기능을 사용 하려면 클래스의 메시지 맵을 파생(&N)。
현재 응용 프로그램 컨텍스트에 대 한 올바른 도움말 컨텍스트를 얻어서이 명령을 처리 하는 CWinApp::OnHelp . 이 처리 하는 간단한 F1 도움말, 메시지 상자에 도움말. MFC 도움말 구현에 대 한 자세한 내용은 기술 노트 28 참조 하십시오。
이 명령 처리기의 사용자 지정 권장 되지 않습니다.
메모nbsp;CWinApp이 연결 해야 합니다-이 기능을 사용 하려면 클래스의 메시지 맵을 파생(&N)。
이 명령은 일반적으로 매핑되어 CWinApp::OnHelpIndex。
기본 도움말 및 도움말 인덱스 간의 차이 원하는 경우 다른 명령 처리기를 제공 될 수 있습니다.
CView CSplitterWnd 구현 위한이 명령을 처리합니다. 보기 분할 창의 일부인 경우이 명령은 것입니다 구현 함수 CSplitterWnd::OnNextPaneCmd대리자입니다. 활성 뷰 분할자의 다음 창으로 이동。
전망은 스플리터에 또는 이동할 수 없습니다. 다음 창 하는 경우이 명령은 사용할 수 없습니다.
이 명령 처리기의 사용자 지정 권장 되지 않습니다.
CView CSplitterWnd 구현 위한이 명령을 처리합니다. 보기 분할 창의 일부인 경우이 명령은 것입니다 구현 함수 CSplitterWnd::OnNextPaneCmd대리자입니다. 활성 뷰 분할자의 이전 창으로 이동。
전망은 스플리터에 또는 아무 이전 창 이동 하는 경우이 명령은 사용할 수 없습니다.
이 명령 처리기의 사용자 지정 권장 되지 않습니다.
현재이 명령에 대 한 표준 구현이 없기는. CView에 대 한이 구현 해야 합니다-를 새 OLE 개체를 삽입할 항목/현재 선택 영역에서 클래스 파생。
모든 OLE 클라이언트 응용 프로그램에는이 명령을 구현 해야 합니다. AppWizard, OLE 옵션 생성 됩니다 OnInsertObject 의 뼈대 구현을 완료 해야 하는 뷰 클래스에。
MFC OLE 샘플 참조 하십시오 이 명령은의 완전 한 구현 위한 OCLIENT 예제。
COleDocument MFC 제공 구현의 표준 OLE 링크 대화 상자를 사용 하 여이 명령을 처리 합니다. 이 대화 상자를 구현 COleLinksDialog 클래스를 통해 액세스할 수 있습니다. 현재 문서에 링크가 포함 되어 있지 않으면 명령이 비활성화 되어 있는。
이 명령 처리기의 사용자 지정 권장 되지 않습니다.
COleDocument 이 명령 ID 범위를 사용 하 여 현재 선택 된 OLE 항목/개체가 지 원하는 동사에 대 한. 이 때문에 주어진된 OLE 항목/객체 유형 0 개 이상의 사용자 지정 동사를 지원할 수 있는 범위 이어야 합니다. 응용 프로그램의 메뉴에서 ID_OLE_VERB_FIRST의 ID 가진 메뉴 항목을 하나 있어야 합니다. 프로그램을 실행 하는 경우 적절 한 메뉴 동사 설명 (또는 많은 동사와 함께 팝업 메뉴) 메뉴에서 업데이트 됩니다. OLE 메뉴 관리 AfxOleSetEditMenu,이 명령에 대 한 업데이트 명령 UI 처리기에 의해 처리 됩니다.
거기에 각이 범위에 명령 ID의 처리에 대 한 아무런 명시적 명령 처리기. COleDocument::OnCmdMsg 트랩이 범위에 있는 모든 명령 Id부터 동사 숫자로 설정 하 고 ( COleClientItem::DoVerb사용) 해당 동사에 대 한 서버 실행을 재정의합니다。
사용자 지정 또는 기타 사용이 명령 ID 범위를 권장 하지 않습니다.
CFrameWnd 도구 모음의 표시 상태를 전환 하려면이 명령 및 명령 업데이트 UI 처리기를 처리 합니다. 도구 모음에는 자식 창 id AFX_IDW_TOOLBAR의 프레임의 자식 창 이어야 합니다. 명령 처리기는 실제로 도구 모음 창의 표시 여부를 전환합니다. CFrameWnd::RecalcLayout 는 새로운 상태로 프레임 창 도구 모음을 다시 그리는 데 사용 됩니다. 명령 업데이트 UI 처리기 모음이 표시 하는 경우 메뉴 항목 확인。
이 명령 처리기의 사용자 지정은 권장 하지 않습니다. 추가 도구 모음을 추가 하고자 하는 경우 복제 하 여이 명령에 대 한 명령 업데이트 UI 처리기 명령 처리기를 수정 합니다.
이 명령은 다른 자식 창 ID (AFX_IDW_STATUS_BAR)를 사용 하는 점을 제외 하 고 처럼 ID_VIEW_TOOLBAR, CFrameWnd 에 구현 됩니다.
업데이트 전용 명령 처리기
상태 표시줄에 표시기로 사용 되는 몇 가지 표준 명령 Id는. 이러한 동일한 응용 프로그램 유휴 시간 동안 그들의 현재 시각적 상태를 표시 하려면 업데이트 명령 UI 처리 메커니즘을 사용 합니다. 때문에 사용자가 선택할 수 없습니다 (즉, 당신은 상태 표시줄 창 밀어 수 없습니다), 다음 이러한 ON_COMMAND 처리기 명령 Id가 말도 안돼。
모두 세 가지의 CFrameWnd::OnUpdateKeyIndicator, 명령 ID를 사용 하 여 해당 가상 키에 매핑하는 구현 도우미에서에서 구현 됩니다. 일반적인 구현 하거나 해제 (비활성화 상태 창 텍스트 없음 =) 해당 가상 키 현재 잠겨 있는지 여부에 따라 CCmdUI 개체。
이 명령 처리기의 사용자 지정 권장 되지 않습니다.
현재에 이러한 지표에 대 한 표준 구현이 없기。
이러한 표시기를 구현 하도록 선택 하면 이러한 표시기 Id 및 상태 표시줄에 표시기의 순서를 유지를 사용 하면 것이 좋습니다 (즉,이 순서: EXT, 모자, NUM, SCRL, OVR, REC)。
기술 노트 번호로 |nbsp; 카테고리별 기술 노트(&N)