다음을 통해 공유


특수 CWinApp 서비스

메시지 루프를 실행 하 고 응용 프로그램을 초기화 하 고 그 뒤를 정리 하는 기회 뿐만 아니라 CWinApp 몇 가지 다른 서비스를 제공 합니다.

셸 등록

기본적으로 MFC 응용 프로그램 마법사는 사용자가 응용 프로그램을 두 번 파일 탐색기 또는 파일 관리자의 클릭으로 만든 데이터 파일을 열 수 있습니다.MFC 응용 프로그램 마법사의 응용 프로그램은 MDI 응용 프로그램입니다 응용 프로그램을 만드는 파일의 확장명을 지정 하는 경우에 호출을 추가 합니다.의 는 CwinappEnableShellOpen 의 멤버 함수 CWinApp 에 InitInstance 가 작성 하는 재정의 합니다.

RegisterShellFileTypes응용 프로그램의 문서 형식에 파일 탐색기 또는 파일 관리자를 등록합니다.함수가 관리 Windows 등록 데이터베이스에 항목을 추가 합니다.항목 각 문서 형식을 등록, 파일 형식과 파일 확장명을 연결, 응용 프로그램을 열려면 명령줄에 지정 및 해당 형식의 문서를 열려면 동적 데이터 교환 (DDE) 명령을 지정 합니다.

EnableShellOpen응용 프로그램 사용자가 선택한 파일을 열려면 파일 탐색기나 파일 관리자에서 DDE 명령을 받도록 함으로써 프로세스를 완료 합니다.

이 자동 등록을 지원 CWinApp .reg 파일을 응용 프로그램과 함께 제공 하거나 특별 한 설치 작업을 수행할 필요가 없습니다.

GDI+ 응용 프로그램을 초기화 하려는 경우 (전화 GdiplusStartup 에서 사용자 InitInstance 함수), GDI+ 배경 스레드를 억제할 필요가.

설정 하 여이 수행할 수 있습니다의 SuppressBackgroundThread 의 멤버는 GdiplusStartupInput 구조에 TRUE.스레드의 경우 백그라운드 억제 GDI+의 NotificationHookNotificationUnhook 호출 (볼 GdiplusStartupOutput)를 입력 하 고 응용 프로그램의 메시지 루프를 종료 되기 직전 이루어져야 합니다.좋은 자리를 호출 합니다. 따라서 GdiplusStartup 알림 후크 함수에서 가상 함수를 재정의 됩니다 CWinApp::Run, 아래와 같이:

int CMyWinApp::Run()
{
   GdiplusStartupInput gdiSI;
   GdiplusStartupOutput gdiSO;
   ULONG_PTR gdiToken;
   ULONG_PTR gdiHookToken;

   gdiSI.SuppressBackgroundThread = TRUE;
   GdiplusStartup(&gdiToken,&gdiSI,&gdiSO);
   gdiSO.NotificationHook(&gdiHookToken);
   int nRet = CWinApp::Run();

   gdiSO.NotificationUnhook(gdiHookToken);
   GdiplusShutdown(gdiToken);

   return nRet;
}

백그라운드 스레드 GDI+를 표시 하지 않으면 주 창을 만들어지기 전에 DDE 명령은 중간 응용 프로그램을 발급할 수 있습니다.DDE 명령 셸에 의해 실행 중간에 오류 메시지가 나타납니까 중단할 수 있습니다.

파일 관리자의 끌어서 놓기

파일 파일 보기 창에서 파일 관리자 또는 파일 탐색기에서 응용 프로그램에서 창으로 끌 수 있습니다.예를 들어, 하나 이상의 파일을에 응용 프로그램에서 파일 이름을 검색 고 해당 파일에 대 한 MDI 자식 창을 열 수 있는 MDI 응용 프로그램의 주 창에서 끌어 올 수 있습니다 수 있습니다.

끌어서 파일을 사용 하 고 응용 프로그램에서 삭제 MFC 응용 프로그램 마법사에 대 한 호출을 씁니다의 CWnd 멤버 함수 DragAcceptFiles 사용자의 주 프레임 창에 대 한 사용자 InitInstance.끌어서 놓기 기능을 구현 하지 않을 경우 해당 호출을 제거할 수 있습니다.

[!참고]

보다 일반적인 끌어서 놓기 기능을 구현할 수도 있습니다 — 사이 또는 문서 내에서 데이터를 끌어-OLE로.자세한 내용은 문서를 참조 하십시오. 드래그 앤 드롭 (OLE).

대부분의 추적 최근에 사용한 문서

열고 파일을 닫을 때 응용 프로그램 개체는 4 개의 가장 최근에 사용한 파일을 추적.이러한 파일의 이름은 파일 메뉴에 추가한 변경 될 경우 업데이트 합니다.프레임 워크 어느 레지스트리에서 또는.ini 파일에서 프로젝트와 동일한 이름 가진이 파일 이름을 저장 하 고 응용 프로그램이 시작 될 때이 해당 파일에서 읽습니다.InitInstance 재정의에 대 한 호출에 대 한 MFC 응용 프로그램 마법사를 만드는 CWinApp 멤버 함수 LoadStdProfileSettings, 정보를 레지스트리에서 로드 또는.ini 파일을 포함 한 가장 최근에 사용한 파일 이름입니다.

이러한 항목은 다음과 같이 저장 됩니다.

  • Windows 2000 및 이후 버전을 Windows NT 레지스트리 키에 값이 저장 됩니다.

  • Windows 3.x에서 승리에 값이 저장 됩니다.INI 파일입니다.

  • Windows 95 및 나중에 값 WIN의 캐시 된 버전에 저장 됩니다.INI입니다.

참고 항목

개념

CWinApp: The Application 클래스