CWinApp 클래스

Windows 애플리케이션 개체를 파생하는 기본 클래스입니다.

구문

class CWinApp : public CWinThread

멤버

공용 생성자

속성 설명
CWinApp::CWinApp CWinApp 개체를 생성합니다.

공용 메서드

이름 설명
CWinApp::AddDocTemplate 응용 프로그램의 사용 가능한 문서 서식 파일 목록에 문서 서식 파일을 추가합니다.
CWinApp::AddToRecentFileList 가장 최근에 사용한(MRU) 파일 목록에 파일 이름을 추가합니다.
CWinApp::ApplicationRecoveryCallback 애플리케이션이 예기치 않게 종료되면 프레임워크에서 호출됩니다.
CWinApp::CloseAllDocuments 열려 있는 모든 문서를 닫습니다.
CWinApp::CreatePrinterDC 프린터 디바이스 컨텍스트를 만듭니다.
CWinApp::D elRegTree 지정된 키와 모든 하위 키를 삭제합니다.
CWinApp::D oMessageBox 애플리케이션에 대한 AfxMessageBox 를 구현합니다.
CWinApp::D oWaitCursor 대기 커서를 켜고 끕니다.
CWinApp::EnableD2DSupport 애플리케이션 D2D 지원을 사용하도록 설정합니다. 주 창이 초기화되기 전에 이 메서드를 호출합니다.
CWinApp::EnableHtmlHelp WinHelp 대신 애플리케이션에 대한 HTMLHelp를 구현합니다.
CWinApp::EnableTaskbarInteraction 작업 표시줄 상호 작용을 사용하도록 설정합니다.
CWinApp::ExitInstance 애플리케이션이 종료되면 클린 재정의합니다.
CWinApp::GetApplicationRecoveryParameter 애플리케이션 복구 방법에 대한 입력 매개 변수를 검색합니다.
CWinApp::GetApplicationRecoveryPingInterval 다시 시작 관리자가 복구 콜백 함수가 반환되기를 기다리는 시간을 반환합니다.
CWinApp::GetApplicationRestartFlags 다시 시작 관리자에 대한 플래그를 반환합니다.
CWinApp::GetAppRegistryKey HKEY_CURRENT_USER\"Software"\RegistryKey\ProfileName에 대한 키를 반환합니다.
CWinApp::GetDataRecoveryHandler 애플리케이션의 이 인스턴스에 대한 데이터 복구 처리기를 가져옵니다.
CWinApp::GetFirstDocTemplatePosition 첫 번째 문서 서식 파일의 위치를 검색합니다.
CWinApp::GetHelpMode 애플리케이션에서 사용하는 도움말 유형을 검색합니다.
CWinApp::GetNextDocTemplate 문서 서식 파일의 위치를 검색합니다. 재귀적으로 사용할 수 있습니다.
CWinApp::GetPrinterDeviceDefaults 프린터 디바이스 기본값을 검색합니다.
CWinApp::GetProfileBinary 애플리케이션의 항목에서 이진 데이터를 검색합니다. INI 파일.
CWinApp::GetProfileInt 애플리케이션의 항목에서 정수 검색 INI 파일.
CWinApp::GetProfileString 애플리케이션의 항목에서 문자열을 검색합니다. INI 파일.
CWinApp::GetSectionKey HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\lpszSection에 대한 키를 반환합니다.
CWinApp::HideApplication 모든 문서를 닫기 전에 애플리케이션을 숨깁니다.
CWinApp::HtmlHelp Windows 함수를 HTMLHelp 호출합니다.
CWinApp::InitInstance 창 개체 만들기와 같은 Windows 인스턴스 초기화를 수행하도록 재정의합니다.
CWinApp::IsTaskbarInteractionEnabled Windows 7 작업 표시줄 상호 작용을 사용할 수 있는지 여부를 알려줍니다.
CWinApp::LoadCursor 커서 리소스를 로드합니다.
CWinApp::LoadIcon 아이콘 리소스를 로드합니다.
CWinApp::LoadOEMCursor OCR_ 상수가 WINDOWS.H에서 지정하는 Windows OEM 미리 정의된 커서를 로드합니다.
CWinApp::LoadOEMIcon OIC_ 상수가 WINDOWS.H에서 지정하는 Windows OEM 미리 정의된 아이콘을 로드합니다.
CWinApp::LoadStandardCursor IDC_ 상수가 WINDOWS.H에서 지정하는 미리 정의된 Windows 커서를 로드합니다.
CWinApp::LoadStandardIcon IDI_ 상수가 WINDOWS.H에서 지정하는 Windows 미리 정의된 아이콘을 로드합니다.
CWinApp::OnDDECommand DDE(동적 데이터 교환) execute 명령에 대한 응답으로 프레임워크에서 호출됩니다.
CWinApp::OnIdle 애플리케이션별 유휴 시간 처리를 수행하도록 재정의합니다.
CWinApp::OpenDocumentFile 파일에서 문서를 열기 위해 프레임워크에서 호출됩니다.
CWinApp::P arseCommandLine 명령줄에서 개별 매개 변수 및 플래그를 구문 분석합니다.
CWinApp::P reTranslateMessage 메시지가 Windows 함수 TranslateMessage 및 DispatchMessage로 디스패치되기 전에 필터링합니다.
CWinApp::P rocessMessageFilter 애플리케이션에 도달하기 전에 특정 메시지를 가로채는 경우
CWinApp::P rocessShellCommand 명령줄 인수 및 플래그를 처리합니다.
CWinApp::P rocessWndProcException 애플리케이션의 메시지 및 명령 처리기에서 throw된 처리되지 않은 모든 예외를 가로채는 경우
CWinApp::Register 사용자 지정된 등록을 수행합니다.
CWinApp::RegisterWithRestartManager 애플리케이션을 다시 시작 관리자에 등록합니다.
CWinApp::ReopenPreviousFilesAtRestart 애플리케이션이 예기치 않게 종료되었을 때 다시 시작 관리자가 열려 있는 파일을 다시 열지 여부를 결정합니다.
CWinApp::RestartInstance 다시 시작 관리자가 시작한 애플리케이션 다시 시작을 처리합니다.
CWinApp::RestoreAutosavedFilesAtRestart 애플리케이션을 다시 시작할 때 다시 시작 관리자가 자동 저장 파일을 복원할지 여부를 결정합니다.
CWinApp::Run 기본 메시지 루프를 실행합니다. 메시지 루프를 사용자 지정하기 위해 재정의합니다.
CWinApp::RunAutomated /Automation 옵션에 대한 애플리케이션의 명령줄을 테스트합니다. 사용되지 않습니다. 대신 ParseCommandLine호출한 후 CCommandLineInfo::m_bRunAutomated 값을 사용합니다.
CWinApp::RunEmbedded /Embedding 옵션에 대한 애플리케이션의 명령줄을 테스트합니다 . 사용되지 않습니다. 대신 ParseCommandLine호출한 후 CCommandLineInfo::m_bRunEmbedded 값을 사용합니다.
CWinApp::SaveAllModified 사용자에게 수정된 모든 문서를 저장하라는 메시지를 표시합니다.
CWinApp::SelectPrinter 인쇄 대화 상자를 통해 사용자가 이전에 표시한 프린터를 선택합니다.
CWinApp::SetHelpMode 애플리케이션에서 사용하는 도움말 유형을 설정하고 초기화합니다.
CWinApp::SupportsApplicationRecovery 다시 시작 관리자가 예기치 않게 종료된 애플리케이션을 복구하는지 여부를 결정합니다.
CWinApp::SupportsAutosaveAtInterval 다시 시작 관리자가 열린 문서를 정기적으로 자동으로 저장할지 여부를 결정합니다.
CWinApp::SupportsAutosaveAtRestart 애플리케이션이 다시 시작될 때 다시 시작 관리자가 열려 있는 문서를 자동으로 저장할지 여부를 결정합니다.
CWinApp::SupportsRestartManager 애플리케이션에서 다시 시작 관리자를 지원하는지 여부를 결정합니다.
CWinApp::등록 취소 개체에서 등록 CWinApp 한 것으로 알려진 모든 항목을 등록 취소합니다.
CWinApp::WinHelp Windows 함수를 WinHelp 호출합니다.
CWinApp::WriteProfileBinary 애플리케이션의 항목에 이진 데이터를 씁니다. INI 파일.
CWinApp::WriteProfileInt 애플리케이션의 항목에 정수를 씁니다. INI 파일.
CWinApp::WriteProfileString 애플리케이션의 항목에 문자열을 씁니다. INI 파일.

보호된 메서드

속성 설명
CWinApp::EnableShellOpen 사용자가 Windows 파일 관리자에서 데이터 파일을 열 수 있습니다.
CWinApp::LoadStdProfile설정 표준을 로드합니다. INI 파일 설정 및 MRU 파일 목록 기능을 사용하도록 설정합니다.
CWinApp::OnContextHelp 애플리케이션 내에서 SHIFT+F1 도움말을 처리합니다.
CWinApp::OnFileNew ID_FILE_NEW 명령을 구현합니다.
CWinApp::OnFileOpen ID_FILE_OPEN 명령을 구현합니다.
CWinApp::OnFilePrintSetup ID_FILE_PRINT_SETUP 명령을 구현합니다.
CWinApp::OnHelp 현재 컨텍스트를 사용하여 애플리케이션 내에서 F1 도움말을 처리합니다.
CWinApp::OnHelpFinder ID_HELP_FINDER 및 ID_DEFAULT_HELP 명령을 처리합니다.
CWinApp::OnHelpIndex ID_HELP_INDEX 명령을 처리하고 기본 도움말 항목을 제공합니다.
CWinApp::OnHelpUsing ID_HELP_USING 명령을 처리합니다.
CWinApp::RegisterShellFileTypes 모든 애플리케이션의 문서 형식을 Windows 파일 관리자에 등록합니다.
CWinApp::SetAppID 애플리케이션에 대한 애플리케이션 사용자 모델 ID를 명시적으로 설정합니다. 사용자 인터페이스가 사용자에게 표시되기 전에 이 메서드를 호출해야 합니다(애플리케이션 생성자가 가장 좋은 위치).
CWinApp::SetRegistryKey 애플리케이션 설정이 대신 레지스트리에 저장되도록 합니다. INI 파일.
CWinApp::UnregisterShellFileTypes Windows 파일 관리자를 사용하여 모든 애플리케이션의 문서 형식을 등록 취소합니다.

공용 데이터 멤버

이름 설명
CWinApp::m_bHelpMode 사용자가 도움말 컨텍스트 모드(일반적으로 SHIFT+F1로 호출됨)에 있는지를 나타냅니다.
CWinApp::m_eHelpType 애플리케이션에서 사용하는 도움말의 유형을 지정합니다.
CWinApp::m_hInstance 애플리케이션의 현재 인스턴스를 식별합니다.
CWinApp::m_lpCmdLine 애플리케이션의 명령줄을 지정하는 null로 끝나는 문자열을 가리킵니다.
CWinApp::m_nCmdShow 창이 처음에 표시되는 방법을 지정합니다.
CWinApp::m_pActiveWnd OLE 서버가 현재 위치에 있는 경우 컨테이너 애플리케이션의 기본 창에 대한 포인터입니다.
CWinApp::m_pszAppID 애플리케이션 사용자 모델 ID입니다.
CWinApp::m_pszAppName 애플리케이션의 이름을 지정합니다.
CWinApp::m_pszExeName 애플리케이션의 모듈 이름입니다.
CWinApp::m_pszHelpFilePath 애플리케이션의 도움말 파일 경로입니다.
CWinApp::m_pszProfileName 애플리케이션의 . INI 파일 이름입니다.
CWinApp::m_pszRegistryKey 애플리케이션 프로필 설정을 저장하기 위한 전체 레지스트리 키를 확인하는 데 사용됩니다.

보호된 데이터 멤버

이름 설명
CWinApp::m_dwRestartManagerSupportFlags 다시 시작 관리자의 동작 방식을 결정하는 플래그입니다.
CWinApp::m_nAutosaveInterval 자동 저장 사이의 시간(밀리초)입니다.
CWinApp::m_pDataRecoveryHandler 애플리케이션의 데이터 복구 처리기에 대한 포인터입니다.

설명

애플리케이션 개체는 애플리케이션(및 각 인스턴스)을 초기화하고 애플리케이션을 실행하기 위한 멤버 함수를 제공합니다.

Microsoft Foundation 클래스를 사용하는 각 애플리케이션에는 파생 CWinApp된 개체가 하나만 포함될 수 있습니다. 이 개체는 다른 C++ 전역 개체가 생성될 때 생성되며 Windows에서 Microsoft Foundation 클래스 라이브러리에서 제공하는 함수를 호출 WinMain 할 때 이미 사용할 수 있습니다. 전역 수준에서 파생 개체 CWinApp 를 선언합니다.

애플리케이션 클래스를 CWinApp파생하는 경우 InitInstance 멤버 함수를 재정의하여 애플리케이션의 기본 창 개체를 만듭니다.

멤버 함수 외에도 CWinApp Microsoft Foundation 클래스 라이브러리는 개체 및 기타 전역 정보에 액세스 CWinApp 하기 위한 다음과 같은 전역 함수를 제공합니다.

  • AfxGetApp 개체에 대한 포인터를 CWinApp 가져옵니다.

  • AfxGetInstanceHandle 은 현재 애플리케이션 인스턴스에 대한 핸들을 가져옵니다.

  • AfxGetResourceHandle 은 애플리케이션의 리소스에 대한 핸들을 가져옵니다.

  • AfxGetAppName 애플리케이션의 이름을 포함 하는 문자열에 대 한 포인터를 가져옵니다. 또는 개체에 대한 포인터가 CWinApp 있는 경우 애플리케이션의 이름을 가져오는 데 사용합니다 m_pszExeName .

다음 개요를 포함하여 클래스에 대한 CWinApp 자세한 내용은 CWinApp: 애플리케이션 클래스를 참조하세요.

  • CWinApp-애플리케이션 마법사에서 작성한 파생 코드입니다.

  • CWinApp애플리케이션의 실행 순서에서 '의 역할입니다.

  • CWinApp'의 기본 멤버 함수 구현입니다.

  • CWinApp'의 키 재정의 가능

데이터 멤버가 m_hPrevInstance 더 이상 존재하지 않습니다. 애플리케이션의 다른 인스턴스가 실행 중인지 확인하려면 명명된 뮤텍스를 사용합니다. 뮤텍스를 열지 못하면 실행 중인 애플리케이션의 다른 인스턴스가 없습니다.

상속 계층 구조

CObject

CCmdTarget

Cwinthread

CWinApp

요구 사항

헤더: afxwin.h

CWinApp::AddDocTemplate

이 멤버 함수를 호출하여 응용 프로그램이 기본 사용 가능한 문서 서식 파일 목록에 문서 서식 파일을 추가합니다.

void AddDocTemplate(CDocTemplate* pTemplate);

매개 변수

pTemplate
추가할 포인터 CDocTemplate 입니다.

설명

RegisterShellFileTypes를 호출 하기 전에 애플리케이션에 모든 문서 템플릿을 추가해야 합니다.

예시

// The following code is produced by the Application Wizard when you
// choose the MDI (multiple document interface) option.
CMultiDocTemplate *pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_MYTYPE,
                                     RUNTIME_CLASS(CMyDoc),
                                     RUNTIME_CLASS(CChildFrame), // custom MDI child frame
                                     RUNTIME_CLASS(CMyView));
if (!pDocTemplate)
   return FALSE;
AddDocTemplate(pDocTemplate);

CWinApp::AddToRecentFileList

MRU 파일 목록에 lpszPathName을 추가하려면 이 멤버 함수를 호출합니다.

virtual void AddToRecentFileList(LPCTSTR lpszPathName);

매개 변수

lpszPathName
파일의 경로입니다.

설명

이 멤버 함수를 사용하기 전에 LoadStdProfile설정 멤버 함수를 호출하여 현재 MRU 파일 목록을 로드해야 합니다.

프레임워크는 파일을 열거나 다른 이름으로 저장 명령을 실행하여 새 이름으로 파일을 저장할 때 이 멤버 함수를 호출합니다.

예시

// This adds the pathname c:\temp\test.doc to the top of
// the most recently used (MRU) list in the File menu.
AfxGetApp()->AddToRecentFileList(_T("c:\\temp\\test.doc"));

CWinApp::ApplicationRecoveryCallback

애플리케이션이 예기치 않게 종료되면 프레임워크에서 호출됩니다.

virtual DWORD ApplicationRecoveryCallback(LPVOID lpvParam);

매개 변수

lpvParam
[in] 향후 사용을 위해 예약되어 있습니다.

Return Value

이 메서드가 성공하면 0입니다. 오류가 발생하면 0이 아닌 값입니다.

설명

애플리케이션이 다시 시작 관리자를 지원하는 경우 애플리케이션이 예기치 않게 종료되면 프레임워크에서 이 함수를 호출합니다.

기본 구현 ApplicationRecoveryCallback 에서는 현재 열려 있는 문서 목록을 레지스트리에 저장하는 데 사용됩니다 CDataRecoveryHandler . 이 메서드는 파일을 자동으로 저장하지 않습니다.

동작을 사용자 지정하려면 파생 CWinApp 클래스에서 이 함수를 재정의하거나 고유한 애플리케이션 복구 메서드를 CWinApp::RegisterWithRestartManager에 매개 변수로 전달합니다.

CWinApp::CloseAllDocuments

이 멤버 함수를 호출하여 열려 있는 모든 문서를 종료하기 전에 닫습니다.

void CloseAllDocuments(BOOL bEndSession);

매개 변수

bEndSession
Windows 세션이 종료되는지 여부를 지정합니다. 세션이 종료되는 경우 TRUE입니다. 그렇지 않으면 FALSE입니다.

설명

를 호출하기 전에 HideApplication을 호출CloseAllDocuments합니다.

CWinApp::CreatePrinterDC

이 멤버 함수를 호출하여 선택한 프린터에서 DC(프린터 디바이스 컨텍스트)를 만듭니다.

BOOL CreatePrinterDC(CDC& dc);

매개 변수

dc
프린터 디바이스 컨텍스트에 대한 참조입니다.

Return Value

프린터 디바이스 컨텍스트가 성공적으로 만들어지면 0이 아닌 경우 그렇지 않으면 0입니다.

설명

CreatePrinterDC 를 사용하여 인쇄할 수 있도록 참조로 전달하는 디바이스 컨텍스트를 초기화합니다.

함수가 성공하면 인쇄를 마쳤으면 디바이스 컨텍스트를 삭제해야 합니다. CDC 개체의 소멸자가 이 작업을 수행하도록 허용하거나 CDC::D eleteDC를 호출하여 명시적으로 수행할 수 있습니다.

CWinApp::CWinApp

개체를 CWinApp 생성하고 애플리케이션 이름으로 저장할 lpszAppName을 전달합니다.

CWinApp(LPCTSTR lpszAppName = NULL);

매개 변수

lpszAppName
Windows에서 사용하는 애플리케이션 이름을 포함하는 null로 끝나는 문자열입니다. 이 인수가 제공되지 않거나 NULL CWinApp 인 경우 리소스 문자열 AFX_IDS_APP_TITLE 또는 실행 파일의 파일 이름을 사용합니다.

설명

파생 클래스의 CWinApp전역 개체 하나를 생성해야 합니다. 애플리케이션에 하나의 CWinApp 개체만 있을 수 있습니다. 생성자는 개체의 멤버 함수를 호출하여 CWinApp 애플리케이션을 초기화하고 실행할 수 있도록 WinMain 개체에 대한 포인터를 저장합니다.

CWinApp::D elRegTree

특정 레지스트리 키와 모든 하위 키를 삭제합니다.

LONG DelRegTree(
    HKEY hParentKey,
    const CString& strKeyName);

LONG DelRegTree(
    HKEY hParentKey,
    const CString& strKeyName,
    CAtlTransactionManager* pTM = NULL);

매개 변수

hParentKey
레지스트리 키에 대한 핸들입니다.

strKeyName
삭제할 레지스트리 키의 이름입니다.

Ptm
CAtlTransactionManager 개체에 대한 포인터입니다.

Return Value

함수가 성공하면 반환 값이 ERROR_SUCCESS. 함수가 실패하면 반환 값은 Winerror.h에 정의된 0이 아닌 오류 코드입니다.

설명

지정된 키와 해당 하위 키를 삭제하려면 이 함수를 호출합니다.

CWinApp::D oMessageBox

프레임워크는 이 멤버 함수를 호출하여 전역 함수 AfxMessageBox에 대한 메시지 상자를 구현합니다.

virtual int DoMessageBox(
    LPCTSTR lpszPrompt,
    UINT nType,
    UINT nIDPrompt);

매개 변수

lpszPrompt
메시지 상자의 텍스트 주소입니다.

nType
메시지 상자 스타일입니다.

nIDPrompt
도움말 컨텍스트 문자열에 대한 인덱스입니다.

Return Value

와 동일한 값을 반환합니다 AfxMessageBox.

설명

이 멤버 함수를 호출하여 메시지 상자를 열지 마세요. 대신 사용합니다 AfxMessageBox .

이 멤버 함수를 재정의하여 애플리케이션 전체 호출 AfxMessageBox 처리를 사용자 지정합니다.

CWinApp::D oWaitCursor

이 멤버 함수는 프레임워크에서 CWaitCursor, CCmdTarget::BeginWaitCursor, CCmdTarget::EndWaitCursorCCmdTarget::RestoreWaitCursor를 구현하기 위해 호출됩니다.

virtual void DoWaitCursor(int nCode);

매개 변수

nCode
이 매개 변수가 1이면 대기 커서가 나타납니다. 0이면 참조 수를 증가하지 않고 대기 커서가 복원됩니다. -1이면 대기 커서가 끝납니다.

설명

기본값은 모래 시계 커서를 구현합니다. DoWaitCursor기본 참조 수를 가져옵니다. 양수이면 모래 시계 커서가 표시됩니다.

일반적으로 직접 호출 DoWaitCursor 하지는 않지만 대기 커서를 변경하거나 대기 커서가 표시되는 동안 추가 처리를 수행하도록 이 멤버 함수를 재정의할 수 있습니다.

대기 커서 CWaitCursor를 보다 쉽고 간소화된 방법으로 구현하려면 .

예시

// The following example shows how to display the
// hourglass cursor during some lengthy processing
void CMdiView::OnLButtonDown(UINT nFlags, CPoint point)
{
   UNREFERENCED_PARAMETER(nFlags);
   UNREFERENCED_PARAMETER(point);

   AfxGetApp()->DoWaitCursor(1); // 1->>display the hourglass cursor

   // do some lengthy processing
   Sleep(1000);

   AfxGetApp()->DoWaitCursor(-1); // -1->>remove the hourglass cursor
}

// The next example shows DoWaitCursor with parameter 0. It restores
// the hourglass cursor.
void CMdiView::OnMButtonDown(UINT nFlags, CPoint point)
{
   UNREFERENCED_PARAMETER(nFlags);
   UNREFERENCED_PARAMETER(point);

   AfxGetApp()->DoWaitCursor(1); // display the hourglass cursor

   // do some lengthy processing

   // The message box will normally change the cursor to
   // the standard arrow cursor, and leave the cursor in
   // as the standard arrow cursor when the message box is
   // closed.
   AfxMessageBox(_T("DoWaitCursor Sample"));

   // Call DoWaitCursor with parameter 0 to restore
   // the cursor back to the hourglass cursor.
   AfxGetApp()->DoWaitCursor(0);

   // do some more lengthy processing
   Sleep(1000);

   AfxGetApp()->DoWaitCursor(-1); // remove the hourglass cursor
}

CWinApp::EnableD2DSupport

Visual Studio 2010 SP1이 필요합니다.

애플리케이션 D2D 지원을 사용하도록 설정합니다. 주 창이 초기화되기 전에 이 메서드를 호출합니다.

BOOL EnableD2DSupport(
    D2D1_FACTORY_TYPE d2dFactoryType = D2D1_FACTORY_TYPE_SINGLE_THREADED,
    DWRITE_FACTORY_TYPE writeFactoryType = DWRITE_FACTORY_TYPE_SHARED);

매개 변수

d2dFactoryType
D2D 팩터리의 스레딩 모델 및 만드는 리소스입니다.

writeFactoryType
쓰기 팩터리 개체를 공유할지 격리할지 여부를 지정하는 값입니다.

Return Value

D2D 지원을 사용하도록 설정한 경우 TRUE를 반환하고, FALSE를 반환합니다. 그렇지 않으면

CWinApp::EnableHtmlHelp

애플리케이션의 도움말에 HTMLHelp를 사용하려면 파생 클래스의 CWinApp생성자 내에서 이 멤버 함수를 호출합니다.

void EnableHtmlHelp();

설명

CWinApp::EnableShellOpen

일반적으로 재정의에서 InitInstance 이 함수를 호출하여 애플리케이션 사용자가 Windows 파일 관리자 내에서 파일을 두 번 클릭할 때 데이터 파일을 열 수 있도록 합니다.

void EnableShellOpen();

설명

RegisterShellFileTypes 이 함수와 함께 멤버 함수를 호출하거나 . 문서 형식의 수동 등록을 위해 애플리케이션을 사용한 REG 파일입니다.

예시

// The following code fragment is from CMyApp::InitInstance.
// CMyApp is a CWinApp-derived class.

// enable file manager drag/drop and DDE Execute open
EnableShellOpen();
RegisterShellFileTypes();

CWinApp::EnableTaskbarInteraction

작업 표시줄 상호 작용을 사용하도록 설정합니다.

BOOL EnableTaskbarInteraction(BOOL bEnable = TRUE);

매개 변수

bEnable
Windows 7 작업 표시줄과의 상호 작용을 사용할지(TRUE) 또는 사용 안 함(FALSE)을 지정합니다.

Return Value

작업 표시줄 상호 작용을 사용하거나 사용하지 않도록 설정할 수 있으면 TRUE를 반환합니다.

설명

이 메서드는 기본 창을 만들기 전에 호출해야 합니다. 그렇지 않으면 FALSE를 어설션하고 반환합니다.

CWinApp::ExitInstance

애플리케이션의 이 인스턴스를 종료하기 위해 멤버 함수 내에서 Run 프레임워크에서 호출됩니다.

virtual int ExitInstance();

Return Value

애플리케이션의 종료 코드입니다. 0은 오류가 없음을 나타내고 0보다 큰 값은 오류를 나타냅니다. 이 값은 .의 WinMain반환 값으로 사용됩니다.

설명

멤버 함수를 제외한 어디에서나 이 멤버 함수를 Run 호출하지 마세요.

이 함수의 기본 구현은 애플리케이션에 프레임워크 옵션을 씁니다. INI 파일. 애플리케이션이 종료되면 클린 이 함수를 재정의합니다.

예시

int CMyApp::ExitInstance()
{
   if (m_pMySampleMem)
      delete m_pMySampleMem;

   DoCleanup();

   return CWinApp::ExitInstance();
}

CWinApp::GetApplicationRecoveryParameter

애플리케이션 복구 방법에 대한 입력 매개 변수를 검색합니다.

virtual LPVOID GetApplicationRecoveryParameter();

Return Value

애플리케이션 복구 메서드의 기본 입력 매개 변수입니다.

설명

이 함수의 기본 동작은 NULL을 반환합니다.

자세한 내용은 CWinApp::ApplicationRecoveryCallback을 참조하세요.

CWinApp::GetApplicationRecoveryPingInterval

다시 시작 관리자가 복구 콜백 함수가 반환되기를 기다리는 시간을 반환합니다.

virtual DWORD GetApplicationRecoveryPingInterval();

Return Value

시간 길이(밀리초)입니다.

설명

다시 시작 관리자에 등록된 애플리케이션이 예기치 않게 종료되면 애플리케이션은 열려 있는 문서를 저장하려고 시도하고 복구 콜백 함수를 호출합니다. 기본 복구 콜백 함수는 CWinApp::ApplicationRecoveryCallback입니다.

프레임워크에서 복구 콜백 함수가 반환되기를 기다리는 시간은 ping 간격입니다. 재정의하거나 사용자 지정 값을 RegisterWithRestartManager제공하여 ping 간격 CWinApp::GetApplicationRecoveryPingInterval 을 사용자 지정할 수 있습니다.

CWinApp::GetApplicationRestartFlags

다시 시작 관리자에 대한 플래그를 반환합니다.

virtual DWORD GetApplicationRestartFlags();

Return Value

다시 시작 관리자에 대한 플래그입니다. 기본 구현은 0을 반환합니다.

설명

다시 시작 관리자의 플래그는 기본 구현에 영향을 주지 않습니다. 나중에 사용할 수 있도록 제공됩니다.

CWinApp::RegisterWithRestartManager를 사용하여 애플리케이션을 다시 시작 관리자에 등록할 때 플래그를 설정합니다.

다시 시작 관리자 플래그에 사용할 수 있는 값은 다음과 같습니다.

  • RESTART_NO_CRASH

  • RESTART_NO_HANG

  • RESTART_NO_PATCH

  • RESTART_NO_REBOOT

CWinApp::GetAppRegistryKey

HKEY_CURRENT_USER\"Software"\RegistryKey\ProfileName의 키를 반환합니다.

HKEY GetAppRegistryKey(CAtlTransactionManager* pTM = NULL);

매개 변수

Ptm
CAtlTransactionManager 개체에 대한 포인터입니다.

Return Value

함수가 성공하면 애플리케이션 키입니다. 그렇지 않으면 NULL입니다.

설명

CWinApp::GetDataRecoveryHandler

애플리케이션의 이 인스턴스에 대한 데이터 복구 처리기를 가져옵니다.

virtual CDataRecoveryHandler *GetDataRecoveryHandler();

Return Value

애플리케이션의 이 인스턴스에 대한 데이터 복구 처리기입니다.

설명

다시 시작 관리자를 사용하는 각 애플리케이션에는 CDataRecoveryHandler 클래스인스턴스가 하나 있어야 합니다. 이 클래스는 열려 있는 문서를 모니터링하고 파일을 자동 저장합니다. 동작 CDataRecoveryHandler 은 다시 시작 관리자의 구성에 따라 달라집니다. 자세한 내용은 CDataRecoveryHandler 클래스를 참조 하세요.

이 메서드는 Windows Vista 이전 운영 체제에서 NULL을 반환합니다. Windows Vista 이전 운영 체제에서는 다시 시작 관리자가 지원되지 않습니다.

애플리케이션에 현재 데이터 복구 처리기가 없는 경우 이 메서드는 하나를 만들고 포인터를 반환합니다.

CWinApp::GetFirstDocTemplatePosition

애플리케이션에서 첫 번째 문서 서식 파일의 위치를 가져옵니다.

POSITION GetFirstDocTemplatePosition() const;

Return Value

반복 또는 개체 포인터 검색에 사용할 수 있는 POSITION 값입니다. 목록이 비어 있으면 NULL입니다.

설명

GetNextDocTemplate 호출에서 반환된 POSITION 값을 사용하여 첫 번째 CDocTemplate 개체를 가져옵니다.

CWinApp::GetHelpMode

애플리케이션에서 사용하는 도움말 유형을 검색합니다.

AFX_HELP_TYPE GetHelpMode();

Return Value

애플리케이션에서 사용하는 도움말 유형입니다. 자세한 내용은 CWinApp::m_eHelpType 참조하세요.

CWinApp::GetNextDocTemplate

pos로 식별된 문서 서식 파일을 가져오고 pos를 POSITION 값으로 설정합니다.

CDocTemplate* GetNextDocTemplate(POSITION& pos) const;

매개 변수

pos
이전 호출 또는 GetFirstDocTemplatePosition에서 GetNextDocTemplate 반환된 POSITION 값에 대한 참조입니다. 값은 이 호출에 의해 다음 위치로 업데이트됩니다.

Return Value

CDocTemplate 개체에 대한 포인터입니다.

설명

호출을 사용하여 초기 위치를 설정하는 경우 정방향 반복 루프에서 사용할 GetNextDocTemplate 수 있습니다 GetFirstDocTemplatePosition.

POSITION 값이 유효한지 확인해야 합니다. 잘못된 경우 Microsoft Foundation 클래스 라이브러리의 디버그 버전이 어설션됩니다.

검색된 문서 서식 파일이 마지막으로 사용 가능한 경우 pos새 값이 NULL로 설정됩니다.

CWinApp::GetPrinterDeviceDefaults

인쇄할 프린터 디바이스 컨텍스트를 준비하려면 이 멤버 함수를 호출합니다.

BOOL GetPrinterDeviceDefaults(struct tagPDA* pPrintDlg);

매개 변수

pPrintDlg
PRINTDLG 구조체에 대한 포인터입니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

Windows에서 현재 프린터 기본값을 검색합니다. 필요에 따라 INI 파일을 사용하거나 인쇄 설정에서 사용자가 설정한 마지막 프린터 구성을 사용합니다.

예시

void CMyApp::SetLandscapeMode()
{
   PRINTDLG pd;
   pd.lStructSize = (DWORD)sizeof(PRINTDLG);
   BOOL bRet = GetPrinterDeviceDefaults(&pd);
   if (bRet)
   {
      // protect memory handle with ::GlobalLock and ::GlobalUnlock
      DEVMODE FAR *pDevMode = (DEVMODE FAR*)::GlobalLock(pd.hDevMode);
      // set orientation to landscape
      pDevMode->dmOrientation = DMORIENT_LANDSCAPE;
      ::GlobalUnlock(pd.hDevMode);
   }
}

CWinApp::GetProfileBinary

이 멤버 함수를 호출하여 애플리케이션 레지스트리의 지정된 섹션 또는 항목에서 이진 데이터를 검색합니다. INI 파일.

BOOL GetProfileBinary(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    LPBYTE* ppData,
    UINT* pBytes);

매개 변수

lpszSection
항목이 포함된 섹션을 지정하는 null로 끝나는 문자열을 가리킵니다.

lpszEntry
값을 검색할 항목이 포함된 null로 끝나는 문자열을 가리킵니다.

ppData
데이터의 주소를 받을 포인터를 가리킵니다.

pBytes
데이터의 크기(바이트)를 받을 UINT를 가리킵니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

이 멤버 함수는 대/소문자를 구분하지 않으므로 경우에 따라 lpszSectionlpszEntry 매개 변수의 문자열이 다를 수 있습니다.

참고 항목

GetProfileBinary 는 버퍼를 할당하고 해당 주소를 * ppData로 반환합니다. 호출자는 delete []를 사용하여 버퍼를 해제해야 합니다.

Important

이 함수에서 반환된 데이터는 NULL로 끝나지 않아도 되며 호출자는 유효성 검사를 수행해야 합니다. 자세한 내용은 버퍼 오버런 방지를 참조하세요.

예시

CWinApp* pApp = AfxGetApp();

const TCHAR* pszKey = _T("My Section");
struct complex {
  double re, im;
} myData = { 1.4142, -0.5 };

// Write the information to the registry.

pApp->WriteProfileBinary(pszKey, _T("ComplexData"), (LPBYTE)&myData, 
   sizeof(myData));

// Read the information from the registry.

complex* pData;
UINT n;
BOOL ret = pApp->GetProfileBinary(pszKey, _T("ComplexData"), (LPBYTE*)&pData, 
   &n);

ASSERT(ret);
ASSERT(n == sizeof(complex));
ASSERT(myData.re == pData->re);
ASSERT(myData.im == pData->im);
delete [] pData; // free the buffer

추가 예제는 CWinApp::WriteProfileBinary를 참조 하세요.

CWinApp::GetProfileInt

.INI 파일 또는 애플리케이션 레지스트리의 지정된 섹션 내에 있는 항목으로 정수 값을 검색하려면 이 멤버 함수를 호출합니다.

UINT GetProfileInt(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    int nDefault);

매개 변수

lpszSection
항목이 포함된 섹션을 지정하는 null로 끝나는 문자열을 가리킵니다.

lpszEntry
값을 검색할 항목이 포함된 null로 끝나는 문자열을 가리킵니다.

nDefault
프레임워크에서 항목을 찾을 수 없는 경우 반환할 기본값을 지정합니다.

Return Value

함수가 성공하면 문자열의 정수 값은 지정된 항목 다음에 오게 됩니다. 함수가 항목을 찾을 수 없는 경우 반환 값은 nDefault 매개 변수의 값입니다. 지정한 항목에 해당하는 값이 정수가 아닌 경우 반환 값은 0입니다.

이 멤버 함수는 .INI 파일에서 값에 대한 16 진수 표기법을 지원합니다. 서명된 정수는 검색할 때 값을 .로 int캐스팅해야 합니다.

설명

이 멤버 함수는 대/소문자를 구분하지 않으므로 경우에 따라 lpszSectionlpszEntry 매개 변수의 문자열이 다를 수 있습니다.

Important

이 함수에서 반환된 데이터는 NULL로 끝나지 않아도 되며 호출자는 유효성 검사를 수행해야 합니다. 자세한 내용은 버퍼 오버런 방지를 참조하세요.

예시

CWinApp *pApp = AfxGetApp();

const TCHAR *pszKey = _T("My Section");
const TCHAR *pszName = _T("Julian");
int iAge = 26;

// Write the information to the registry.

pApp->WriteProfileString(pszKey, _T("Name"), pszName);
pApp->WriteProfileInt(pszKey, _T("Age"), iAge);

// Read the information from the registry.

CString strName = pApp->GetProfileString(pszKey, _T("Name"));
int iAge2 = pApp->GetProfileInt(pszKey, _T("Age"), 0);

ASSERT(strName == pszName);
ASSERT(iAge2 == iAge);

추가 예제는 CWinApp::WriteProfileInt를 참조 하세요.

CWinApp::GetProfileString

이 멤버 함수를 호출하여 애플리케이션의 레지스트리에서 지정된 섹션 내의 항목과 연결된 문자열을 검색합니다. INI 파일.

CString GetProfileString(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    LPCTSTR lpszDefault = NULL);

매개 변수

lpszSection
항목이 포함된 섹션을 지정하는 null로 끝나는 문자열을 가리킵니다.

lpszEntry
문자열을 검색할 항목이 포함된 null로 끝나는 문자열을 가리킵니다. 이 값은 NULL이 아니어야 합니다.

lpszDefault
초기화 파일에서 항목을 찾을 수 없는 경우 지정된 항목의 기본 문자열 값을 가리킵니다.

Return Value

반환 값은 애플리케이션의 문자열입니다. 문자열을 찾을 수 없는 경우 INI 파일 또는 lpszDefault 입니다. 프레임워크에서 지원하는 최대 문자열 길이는 _MAX_PATH. lpszDefault가 NULL이면 반환 값은 빈 문자열입니다.

설명

Important

이 함수에서 반환된 데이터는 NULL로 끝나지 않아도 되며 호출자는 유효성 검사를 수행해야 합니다. 자세한 내용은 버퍼 오버런 방지를 참조하세요.

예시

CWinApp *pApp = AfxGetApp();

CString strSection = _T("My Section");
CString strStringItem = _T("My String Item");
CString strIntItem = _T("My Int Item");

pApp->WriteProfileString(strSection, strStringItem, _T("test"));

CString strValue;
strValue = pApp->GetProfileString(strSection, strStringItem);
ASSERT(strValue == _T("test"));

pApp->WriteProfileInt(strSection, strIntItem, 1234);

int nValue;
nValue = pApp->GetProfileInt(strSection, strIntItem, 0);
ASSERT(nValue == 1234);

또 다른 예제는 CWinApp::GetProfileInt에 대한 예제를 참조하세요.

CWinApp::GetSectionKey

HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\lpszSection에 대한 키를 반환합니다.

HKEY GetSectionKey(
    LPCTSTR lpszSection,
    CAtlTransactionManager* pTM = NULL);

매개 변수

lpszSection
가져올 키의 이름입니다.

Ptm
CAtlTransactionManager 개체에 대한 포인터입니다.

Return Value

함수가 성공하면 섹션 키입니다. 그렇지 않으면 NULL입니다.

설명

CWinApp::HideApplication

열려 있는 문서를 닫기 전에 이 멤버 함수를 호출하여 애플리케이션을 숨깁니다.

void HideApplication();

CWinApp::HtmlHelp

이 멤버 함수를 호출하여 HTMLHelp 애플리케이션을 호출합니다.

virtual void HtmlHelp(
    DWORD_PTR dwData,
    UINT nCmd = 0x000F);

매개 변수

dwData
추가 데이터를 지정합니다. 사용되는 값은 nCmd 매개 변수의 값에 따라 달라집니다. 기본값은 0x000F HH_HELP_CONTEXT 의미합니다.

nCmd
요청한 도움말의 형식을 지정합니다. 가능한 값 목록 및 dwData 매개 변수에 미치는 영향은 Windows SDK의 HtmlHelpW 또는 HtmlHelpA API 함수에 설명된 uCommand 매개 변수를 참조하세요.

설명

또한 프레임워크는 HTMLHelp 애플리케이션을 호출하기 위해 이 함수를 호출합니다.

프레임워크는 애플리케이션이 종료될 때 HTMLHelp 애플리케이션을 자동으로 닫습니다.

CWinApp::InitInstance

Windows에서는 동일한 프로그램의 여러 복사본을 동시에 실행할 수 있습니다.

virtual BOOL InitInstance();

Return Value

초기화에 성공하면 0이 아닌 값입니다. 그렇지 않으면 0입니다.

설명

애플리케이션 초기화는 개념적으로 두 섹션으로 나뉩니다. 즉, 프로그램을 처음 실행할 때 수행되는 일회성 애플리케이션 초기화와 처음을 포함하여 프로그램의 복사본이 실행 될 때마다 실행되는 인스턴스 초기화입니다. 프레임워크의 구현은 이 함수를 WinMain 호출합니다.

Windows에서 실행되는 애플리케이션의 각 새 인스턴스를 초기화하도록 재정 InitInstance 의합니다. 일반적으로 기본 창 개체를 생성하고 해당 창을 가리키도록 데이터 멤버를 설정하도록 재정 InitInstanceCWinThread::m_pMainWnd 합니다. 이 멤버 함수를 재정의하는 방법에 대한 자세한 내용은 CWinApp: 애플리케이션 클래스를 참조 하세요.

참고 항목

MFC 애플리케이션은 STA(단일 스레드 아파트)로 초기화되어야 합니다. 재정의에서 CoInitializeExInitInstance 호출하는 경우 COINIT_MULTITHREADED 대신 COINIT_APARTMENTTHREADED 지정합니다.

예시

// AppWizard implements the InitInstance overridable function 
// according to options you select.  For example, the multiple document
// interface (MDI) option was chosen for the AppWizard code created
// below. You can add other per-instance initializations to the code
// created by AppWizard.

BOOL CMFCListViewApp::InitInstance()
{
   AfxSetAmbientActCtx(FALSE);
   // Remainder of function definition omitted.

   CWinApp::InitInstance();

   // Initialize OLE libraries
   if (!AfxOleInit())
   {
      AfxMessageBox(_T("OleInit failed."));
      return FALSE;
   }

   // Standard initialization
   // If you are not using these features and wish to reduce the size
   // of your final executable, you should remove from the following
   // the specific initialization routines you do not need
   // Change the registry key under which our settings are stored
   // TODO: You should modify this string to be something appropriate
   // such as the name of your company or organization
   SetRegistryKey(_T("Local AppWizard-Generated Applications"));
   LoadStdProfileSettings(4);  // Load standard INI file options (including MRU)
   // Register the application's document templates.  Document templates
   //  serve as the connection between documents, frame windows and views
   CMultiDocTemplate* pDocTemplate;
   pDocTemplate = new CMultiDocTemplate(IDR_MFCListViewTYPE,
      RUNTIME_CLASS(CMFCListViewDoc),
      RUNTIME_CLASS(CChildFrame), // custom MDI child frame
      RUNTIME_CLASS(CMyListView));
   if (!pDocTemplate)
      return FALSE;
   AddDocTemplate(pDocTemplate);

   // create main MDI Frame window
   CMainFrame* pMainFrame = new CMainFrame;
   if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME))
   {
      delete pMainFrame;
      return FALSE;
   }
   m_pMainWnd = pMainFrame;
   // call DragAcceptFiles only if there's a suffix
   //  In an MDI app, this should occur immediately after setting m_pMainWnd


   // Parse command line for standard shell commands, DDE, file open
   CCommandLineInfo cmdInfo;
   ParseCommandLine(cmdInfo);


   // Dispatch commands specified on the command line.  Will return FALSE if
   // app was launched with /RegServer, /Register, /Unregserver or /Unregister.
   if (!ProcessShellCommand(cmdInfo))
      return FALSE;
   // The main window has been initialized, so show and update it
   pMainFrame->ShowWindow(m_nCmdShow);
   pMainFrame->UpdateWindow();

   return TRUE;
}

CWinApp::IsTaskbarInteractionEnabled

Windows 7 작업 표시줄 상호 작용을 사용할 수 있는지 여부를 알려줍니다.

virtual BOOL IsTaskbarInteractionEnabled();

Return Value

호출되고 운영 체제가 Windows 7 이상인 경우 EnableTaskbarInteraction TRUE를 반환합니다.

설명

작업 표시줄 상호 작용은 MDI 애플리케이션이 애플리케이션 작업 표시줄 단추 위에 마우스 포인터가 있을 때 나타나는 별도의 탭 썸네일로 MDI 자식의 콘텐츠를 표시한다는 것을 의미합니다.

CWinApp::LoadCursor

lpszResourceName으로 명명되거나 nIDResource로 지정된 커서 리소스를 현재 실행 파일에서 로드합니다.

HCURSOR LoadCursor(LPCTSTR lpszResourceName) const;  HCURSOR LoadCursor(UINT nIDResource) const;

매개 변수

lpszResourceName
커서 리소스의 이름을 포함하는 null로 끝나는 문자열을 가리킵니다. 이 인수에 CString 사용할 수 있습니다.

nIDResource
커서 리소스의 ID입니다. 리소스 목록은 Windows SDK의 LoadCursor를 참조하세요.

Return Value

성공하면 커서에 대한 핸들입니다. 그렇지 않으면 NULL입니다.

설명

LoadCursor 는 이전에 로드되지 않은 경우에만 커서를 메모리에 로드합니다. 그렇지 않으면 기존 리소스의 핸들을 검색합니다.

LoadStandardCursor 또는 LoadOEMCursor 멤버 함수를 사용하여 미리 정의된 Windows 커서에 액세스합니다.

예시

HCURSOR hCursor;

// Load a cursor resource that was originally created using
// the Graphics Editor and assigned the i.d. IDC_MYCURSOR.
hCursor = AfxGetApp()->LoadCursor(IDC_MYCURSOR);

CWinApp::LoadIcon

lpszResourceName으로 명명되거나 실행 파일에서 nIDResource지정된 아이콘 리소스를 로드합니다.

HICON LoadIcon(LPCTSTR lpszResourceName) const;  HICON LoadIcon(UINT nIDResource) const;

매개 변수

lpszResourceName
아이콘 리소스의 이름을 포함하는 null로 끝나는 문자열을 가리킵니다. 이 인수에 CString 사용할 수도 있습니다.

nIDResource
아이콘 리소스의 ID 번호입니다.

Return Value

성공하면 아이콘에 대한 핸들입니다. 그렇지 않으면 NULL입니다.

설명

LoadIcon 는 이전에 로드되지 않은 경우에만 아이콘을 로드합니다. 그렇지 않으면 기존 리소스의 핸들을 검색합니다.

LoadStandardIcon 또는 LoadOEMIcon 멤버 함수를 사용하여 미리 정의된 Windows 아이콘에 액세스할 수 있습니다.

참고 항목

이 멤버 함수는 Win32 API 함수 LoadIcon을 호출합니다. 이 함수는 크기가 SM_CXICON 준수하고 시스템 메트릭 값을 SM_CYICON 아이콘만 로드할 수 있습니다.

CWinApp::LoadOEMCursor

nIDCursor로 지정된 Windows 미리 정의된 커서 리소스를 로드합니다.

HCURSOR LoadOEMCursor(UINT nIDCursor) const;

매개 변수

nIDCursor
미리 정의된 Windows 커서를 지정하는 OCR_ 매니페스트 상수 식별자입니다. WINDOWS.H에서 OCR_ 상수에 액세스하려면 먼저 #include \<afxwin.h> 액세스해야 합니다#define OEMRESOURCE.

Return Value

성공하면 커서에 대한 핸들입니다. 그렇지 않으면 NULL입니다.

설명

LoadOEMCursor 또는 LoadStandardCursor 멤버 함수를 사용하여 미리 정의된 Windows 커서에 액세스합니다.

예시

// In the stdafx.h file, add #define OEMRESOURCE to
// include the windows.h definitions of OCR_ values.
#define OEMRESOURCE
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions

 

HCURSOR hCursor;
// Load the predefined WIndows "size all" cursor.
hCursor = AfxGetApp()->LoadOEMCursor(OCR_SIZEALL);

CWinApp::LoadOEMIcon

nIDIcon으로 지정된 Windows 미리 정의된 아이콘 리소스를 로드합니다.

HICON LoadOEMIcon(UINT nIDIcon) const;

매개 변수

nIDIcon
미리 정의된 Windows 아이콘을 지정하는 OIC_ 매니페스트 상수 식별자입니다. WINDOWS.H의 OIC_ 상수에 액세스하려면 먼저 #include \<afxwin.h> 있어야 #define OEMRESOURCE 합니다.

Return Value

성공하면 아이콘에 대한 핸들입니다. 그렇지 않으면 NULL입니다.

설명

LoadOEMIcon 또는 LoadStandardIcon 멤버 함수를 사용하여 미리 정의된 Windows 아이콘에 액세스합니다.

CWinApp::LoadStandardCursor

lpszCursorName이 지정하는 Windows 미리 정의된 커서 리소스를 로드합니다.

HCURSOR LoadStandardCursor(LPCTSTR lpszCursorName) const;

매개 변수

lpszCursorName
미리 정의된 Windows 커서를 지정하는 IDC_ 매니페스트 상수 식별자입니다. 이러한 식별자는 WINDOWS.H에서 정의됩니다. 다음 목록에서는 lpszCursorName에 대해 미리 정의된 값과 의미를 보여 줍니다.

  • IDC_ARROW 표준 화살표 커서

  • IDC_IBEAM 표준 텍스트 삽입 커서

  • IDC_WAIT Windows에서 시간이 많이 걸리는 작업을 수행할 때 사용되는 모래 시계 커서

  • 선택하기 위해 머리 십자형 커서 IDC_CROSS

  • 똑바로 가리키는 IDC_UPARROW 화살표

  • IDC_SIZE 사용되지 않으며 지원되지 않습니다. IDC_SIZEALL 사용

  • IDC_SIZEALL 네 개의 뾰족한 화살표입니다. 창 크기를 조정하는 데 사용할 커서입니다.

  • IDC_ICON 사용되지 않으며 지원되지 않습니다. IDC_ARROW 사용합니다.

  • 왼쪽 위와 오른쪽 아래에 끝이 있는 양방향 화살표 IDC_SIZENWSE

  • 오른쪽 위와 왼쪽 아래에 끝이 있는 양방향 화살표 IDC_SIZENESW

  • IDC_SIZEWE 가로 양방향 화살표

  • IDC_SIZENS 세로 양방향 화살표

Return Value

성공하면 커서에 대한 핸들입니다. 그렇지 않으면 NULL입니다.

설명

LoadStandardCursor 또는 LoadOEMCursor 멤버 함수를 사용하여 미리 정의된 Windows 커서에 액세스합니다.

예시

HCURSOR hCursor;

// Load the predefined Windows "up arrow" cursor.
hCursor = AfxGetApp()->LoadStandardCursor(IDC_UPARROW);

CWinApp::LoadStandardIcon

lpszIconName에서 지정하는 Windows 미리 정의된 아이콘 리소스를 로드합니다.

HICON LoadStandardIcon(LPCTSTR lpszIconName) const;

매개 변수

lpszIconName
미리 정의된 Windows 아이콘을 지정하는 매니페스트 상수 식별자입니다. 이러한 식별자는 WINDOWS.H에서 정의됩니다. 가능한 미리 정의된 값 및 해당 설명 목록은 Windows SDK의 LoadIcon에서 lpIconName 매개 변수를 참조하세요.

Return Value

성공하면 아이콘에 대한 핸들입니다. 그렇지 않으면 NULL입니다.

설명

LoadStandardIcon 또는 LoadOEMIcon 멤버 함수를 사용하여 미리 정의된 Windows 아이콘에 액세스합니다.

CWinApp::LoadStdProfile설정

InitInstance 멤버 함수 내에서 이 멤버 함수를 호출하여 MRU(가장 최근에 사용한) 파일 및 마지막 미리 보기 상태 목록을 사용하도록 설정하고 로드합니다.

void LoadStdProfileSettings(UINT nMaxMRU = _AFX_MRU_COUNT);

매개 변수

nMaxMRU
추적할 최근에 사용한 파일 수입니다.

설명

nMaxMRU가 0이면 MRU 목록이 기본 없습니다.

CWinApp::m_bHelpMode

애플리케이션이 도움말 컨텍스트 모드(일반적으로 SHIFT + F1로 호출됨)인 경우 TRUE입니다. 그렇지 않으면 FALSE입니다.

BOOL m_bHelpMode;

설명

도움말 컨텍스트 모드에서 커서는 물음표가 되고 사용자는 화면에 대해 커서를 이동할 수 있습니다. 도움말 모드에서 특수 처리를 구현하려면 이 플래그를 검사합니다. m_bHelpMode 는 BOOL 형식의 공용 변수입니다.

CWinApp::m_dwRestartManagerSupportFlags

다시 시작 관리자의 동작 방식을 결정하는 플래그입니다.

DWORD m_dwRestartManagerSupportFlags;

설명

다시 시작 관리자를 사용하도록 설정하려면 원하는 동작으로 설정합니다 m_dwRestartManagerSupportFlags . 다음 표에서는 사용할 수 있는 플래그를 보여줍니다.

플래그 설명
AFX_RESTART_MANAGER_SUPPORT_RESTART 애플리케이션은 CWinApp::RegisterWithRestartManager를 사용하여 등록됩니다. 다시 시작 관리자는 예기치 않게 종료되는 경우 애플리케이션을 다시 시작해야 합니다.
- AFX_RESTART_MANAGER_SUPPORT_RECOVERY 애플리케이션은 다시 시작 관리자에 등록되고 다시 시작 관리자는 애플리케이션을 다시 시작할 때 복구 콜백 함수를 호출합니다. 기본 복구 콜백 함수는 CWinApp::ApplicationRecoveryCallback입니다.
- AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART 자동 저장이 활성화되고 다시 시작 관리자는 애플리케이션이 다시 시작될 때 열려 있는 문서를 자동으로 저장합니다.
- AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL 자동 저장이 활성화되고 다시 시작 관리자가 열려 있는 문서를 정기적으로 자동 저장합니다. 간격은 CWinApp::m_nAutosaveInterval 의해 정의됩니다.
- AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES 다시 시작 관리자는 예기치 않은 종료에서 애플리케이션을 다시 시작한 후 이전에 열려 있는 문서를 엽니다. CDataRecoveryHandler 클래스열려 있는 문서 목록을 저장하고 복원하는 것을 처리합니다.
- AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES 다시 시작 관리자는 애플리케이션을 다시 시작한 후 자동 저장 파일을 복원하라는 메시지를 사용자에게 표시합니다. 클래스는 CDataRecoveryHandler 사용자를 쿼리합니다.
- AFX_RESTART_MANAGER_SUPPORT_NO_AUTOSAVE AFX_RESTART_MANAGER_SUPPORT_RESTART, AFX_RESTART_MANAGER_SUPPORT_RECOVER 및 AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES 통합입니다.
- AFX_RESTART_MANAGER_SUPPORT_ALL_ASPECTS AFX_RESTART_MANAGER_SUPPORT_NO_AUTOSAVE, AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART, AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL 및 AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES 통합입니다.
- AFX_RESTART_MANAGER_SUPPORT_RESTART_ASPECTS AFX_RESTART_MANAGER_SUPPORT_RESTART, AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART, AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES 및 AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES 통합입니다.
- AFX_RESTART_MANAGER_SUPPORT_RECOVERY_ASPECTS 공용 구조체는 ofAFX_RESTART_MANAGER_SUPPORT_RECOVERY, AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL, AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES 및 AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES.

CWinApp::m_eHelpType

이 데이터 멤버의 형식은 클래스 내에 CWinApp 정의된 열거형 형식 AFX_HELP_TYPE.

AFX_HELP_TYPE m_eHelpType;

설명

AFX_HELP_TYPE 열거형은 다음과 같이 정의됩니다.

enum AFX_HELP_TYPE {
    afxWinHelp = 0,
    afxHTMLHelp = 1
    };
  • 애플리케이션의 도움말을 HTML 도움말로 설정하려면 SetHelpMode를 호출하고 지정afxHTMLHelp합니다.

  • WinHelp에 대한 애플리케이션의 도움말을 설정하려면 호출 SetHelpMode 하고 지정합니다 afxWinHelp.

CWinApp::m_hInstance

Windows에서 .에 전달한 hInstance 매개 변수에 해당합니다 WinMain.

HINSTANCE m_hInstance;

설명

m_hInstance 데이터 멤버는 Windows에서 실행되는 애플리케이션의 현재 인스턴스에 대한 핸들입니다. 이 값은 전역 함수 AfxGetInstanceHandle에서 반환됩니다. m_hInstance 는 HINSTANCE 형식의 공용 변수입니다.

예시

// Typically you do not need to pass the application's hInstance
// to Windows APIs directly because there are equivalent MFC
// member functions that pass the hInstance for you.  The following
// example is not typical:

HCURSOR hCursor;
hCursor = ::LoadCursor(AfxGetApp()->m_hInstance, 
   MAKEINTRESOURCE(IDC_MYCURSOR));

// A more direct way to get the application's hInstance is to
// call AfxGetInstanceHandle:
hCursor = ::LoadCursor(AfxGetInstanceHandle(), 
   MAKEINTRESOURCE(IDC_MYCURSOR));

// If you need the hInstance to load a resource, it is better
// to call AfxGetResourceHandle instead of AfxGetInstanceHandle:
hCursor = ::LoadCursor(AfxGetResourceHandle(), 
   MAKEINTRESOURCE(IDC_MYCURSOR));

// A better way to load the cursor resource is to call
// CWinApp::LoadCursor
hCursor = AfxGetApp()->LoadCursor(IDC_MYCURSOR);

CWinApp::m_lpCmdLine

Windows에서 .에 전달한 lpCmdLine 매개 변수에 해당합니다 WinMain.

LPTSTR m_lpCmdLine;

설명

애플리케이션의 명령줄을 지정하는 null로 끝나는 문자열을 가리킵니다. 애플리케이션이 시작될 때 사용자가 입력한 명령줄 인수에 액세스하는 데 사용합니다 m_lpCmdLine . m_lpCmdLine 는 LPTSTR 형식의 공용 변수입니다.

예시

if (m_lpCmdLine[0] == _T('\0'))
{
   // Create a new (empty) document.
   OnFileNew();
}
else
{
   // Open a file passed as the first command line parameter.
   OpenDocumentFile(m_lpCmdLine);
}

CWinApp::m_nAutosaveInterval

자동 저장 사이의 시간(밀리초)입니다.

int m_nAutosaveInterval;

설명

설정된 간격으로 열려 있는 문서를 자동으로 저장하도록 다시 시작 관리자를 구성할 수 있습니다. 애플리케이션에서 파일을 자동 저장하지 않는 경우 이 매개 변수는 영향을 주지 않습니다.

CWinApp::m_nCmdShow

Windows에서 .에 전달한 nCmdShow 매개 변수에 해당합니다 WinMain.

int m_nCmdShow;

설명

애플리케이션의 기본 창에 대해 CWnd::ShowWindow를 호출할 때 인수로 전달 m_nCmdShow 해야 합니다. m_nCmdShow 는 형식 int의 public 변수입니다.

예시

// The following code fragment is taken from CMyApp::InitInstance.
// CMyApp is derived from CWinApp.

// The main window has been initialized, so show and update it
// using the nCmdShow parameter passed to the application when it
// was first launched.
// pMainFrame is the main MDI frame window of our app and is derived
// from CMDIFrameWnd.
pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();

CWinApp::m_pActiveWnd

이 데이터 멤버를 사용하여 OLE 서버 애플리케이션이 현재 위치에서 활성화된 OLE 컨테이너 애플리케이션의 기본 창에 대한 포인터를 저장합니다.

설명

이 데이터 멤버가 NULL이면 애플리케이션이 현재 위치 활성 상태가 아닙니다.

프레임워크는 프레임 창이 OLE 컨테이너 애플리케이션에 의해 활성화될 때 이 멤버 변수를 설정합니다.

CWinApp::m_pDataRecoveryHandler

애플리케이션의 데이터 복구 처리기에 대한 포인터입니다.

CDataRecoveryHandler* m_pDataRecoveryHandler;

설명

애플리케이션의 데이터 복구 처리기는 열려 있는 문서를 모니터링하고 자동으로 저장합니다. 프레임워크는 데이터 복구 처리기를 사용하여 애플리케이션이 예기치 않게 종료된 후 다시 시작될 때 자동 저장 파일을 복원합니다. 자세한 내용은 CDataRecoveryHandler 클래스를 참조 하세요.

CWinApp::m_pszAppName

애플리케이션의 이름을 지정합니다.

LPCTSTR m_pszAppName;

설명

애플리케이션 이름은 CWinApp 생성자에 전달된 매개 변수에서 가져오거나, 지정하지 않은 경우 AFX_IDS_APP_TITLE ID가 있는 리소스 문자열로 가져올 수 있습니다. 리소스에서 애플리케이션 이름을 찾을 수 없는 경우 프로그램의 .EXE 파일 이름에서 가져옵니다.

전역 함수 AfxGetAppName에서 반환됩니다. m_pszAppName는 const char* 형식의 공용 변수입니다.

참고 항목

값을 할당하는 m_pszAppName경우 힙에 동적으로 할당되어야 합니다. CWinApp 소멸자가 이 포인터를 사용하여 free()를 호출합니다. 많은 사용자가 () 런타임 라이브러리 함수를 사용하여 _tcsdup할당을 수행하려고 합니다. 또한 새 값을 할당하기 전에 현재 포인터와 연결된 메모리를 해제합니다. 예시:

//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszAppName);
//Change the name of the application file.
//The CWinApp destructor will free the memory.
m_pszAppName = _tcsdup(_T("c:\\somedir\\myapp.exe"));

예시

CWnd *pWnd = AfxGetMainWnd();
// Set pWnd to some CWnd object whose window has already
// been created.

// The following call to CWnd::MessageBox uses the application
// title as the message box caption.
pWnd->MessageBox(_T("Some message"), AfxGetApp()->m_pszAppName);

// A more direct way to get the application title is to
// call AfxGetAppName:
pWnd->MessageBox(_T("Some message"), AfxGetAppName());

// An easier way to display a message box using the application
// title as the message box caption is to call AfxMessageBox:
AfxMessageBox(_T("Some message"));

CWinApp::m_pszExeName

확장명 없이 애플리케이션의 실행 파일 이름을 포함합니다.

LPCTSTR m_pszExeName;

설명

m_pszAppName 달리 이 이름에는 공백이 포함될 수 없습니다. m_pszExeName는 const char* 형식의 공용 변수입니다.

참고 항목

값을 할당하는 m_pszExeName경우 힙에 동적으로 할당되어야 합니다. CWinApp 소멸자가 이 포인터를 사용하여 free()를 호출합니다. 많은 사용자가 () 런타임 라이브러리 함수를 사용하여 _tcsdup할당을 수행하려고 합니다. 또한 새 값을 할당하기 전에 현재 포인터와 연결된 메모리를 해제합니다. 예시:

//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszExeName);
//Change the name of the .EXE file.
//The CWinApp destructor will free the memory.
m_pszExeName = _tcsdup(_T("c:\\somedir\\myapp"));

CWinApp::m_pszHelpFilePath

애플리케이션의 도움말 파일에 대한 경로를 포함합니다.

LPCTSTR m_pszHelpFilePath;

설명

기본적으로 프레임워크는 "를 사용하여 애플리케이션의 이름으로 초기화됩니다 m_pszHelpFilePath . HLP"가 추가되었습니다. 도움말 파일의 이름을 변경하려면 원하는 도움말 파일의 전체 이름을 포함하는 문자열을 가리키도록 설정합니다 m_pszHelpFilePath . 이 작업을 수행하는 편리한 위치는 애플리케이션의 InitInstance 함수에 있습니다. m_pszHelpFilePath는 const char* 형식의 공용 변수입니다.

참고 항목

값을 할당하는 m_pszHelpFilePath경우 힙에 동적으로 할당되어야 합니다. CWinApp 소멸자가 이 포인터를 사용하여 free()를 호출합니다. 많은 사용자가 () 런타임 라이브러리 함수를 사용하여 _tcsdup할당을 수행하려고 합니다. 또한 새 값을 할당하기 전에 현재 포인터와 연결된 메모리를 해제합니다. 예시:

//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszHelpFilePath);
//Change the name of the .HLP file.
//The CWinApp destructor will free the memory.
m_pszHelpFilePath = _tcsdup(_T("c:\\somedir\\myhelp.hlp"));

CWinApp::m_pszProfileName

애플리케이션의 이름을 포함합니다. INI 파일.

LPCTSTR m_pszProfileName;

설명

m_pszProfileName는 const char* 형식의 공용 변수입니다.

참고 항목

값을 할당하는 m_pszProfileName경우 힙에 동적으로 할당되어야 합니다. CWinApp 소멸자가 이 포인터를 사용하여 free()를 호출합니다. 많은 사용자가 () 런타임 라이브러리 함수를 사용하여 _tcsdup할당을 수행하려고 합니다. 또한 새 값을 할당하기 전에 현재 포인터와 연결된 메모리를 해제합니다. 예시:

//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszProfileName);
//Change the name of the .INI file.
//The CWinApp destructor will free the memory.
m_pszProfileName = _tcsdup(_T("c:\\somedir\\myini.ini"));

CWinApp::m_pszRegistryKey

레지스트리 또는 INI 파일에서 애플리케이션 프로필 설정이 저장되는 위치를 결정하는 데 사용됩니다.

LPCTSTR m_pszRegistryKey;

설명

일반적으로 이 데이터 멤버는 읽기 전용으로 처리됩니다.

  • 값은 레지스트리 키에 저장됩니다. 애플리케이션 프로필 설정의 이름은 HKEY_CURRENT_USER/Software/LocalAppWizard-Generated/레지스트리 키에 추가됩니다.

값을 할당하는 m_pszRegistryKey경우 힙에 동적으로 할당되어야 합니다. CWinApp 소멸자가 이 포인터를 사용하여 free()를 호출합니다. 많은 사용자가 () 런타임 라이브러리 함수를 사용하여 _tcsdup할당을 수행하려고 합니다. 또한 새 값을 할당하기 전에 현재 포인터와 연결된 메모리를 해제합니다. 예시:

//First free the string allocated by MFC at CWinApp startup.
//The string is allocated before InitInstance is called.
free((void*)m_pszRegistryKey);
//Change the name of the registry key.
//The CWinApp destructor will free the memory.
m_pszRegistryKey = _tcsdup(
    _T("HKEY_CURRENT_USER\\Software\\mycompany\\myapp\\thissection\\thisvalue"));

CWinApp::m_pszAppID

애플리케이션 사용자 모델 ID입니다.

LPCTSTR m_pszAppID;

설명

CWinApp::OnContextHelp

애플리케이션 내에서 SHIFT+F1 도움말을 처리합니다.

afx_msg void OnContextHelp();

설명

이 멤버 함수를 ON_COMMAND( ID_CONTEXT_HELP, OnContextHelp ) 사용하려면 클래스 메시지 맵에 CWinApp 문을 추가하고 가속기 테이블 항목(일반적으로 SHIFT+F1)도 추가해야 합니다.

OnContextHelp 는 애플리케이션을 도움말 모드로 전환합니다. 커서가 화살표와 물음표로 바뀌면 마우스 포인터를 이동하고 마우스 왼쪽 단추를 눌러 대화 상자, 창, 메뉴 또는 명령 단추를 선택할 수 있습니다. 이 멤버 함수는 커서 아래에 있는 개체의 도움말 컨텍스트를 검색하고 해당 도움말 컨텍스트를 사용하여 Windows 함수 WinHelp를 호출합니다.

CWinApp::OnDDECommand

기본 프레임 창에서 DDE 실행 메시지를 받을 때 프레임워크에서 호출됩니다.

virtual BOOL OnDDECommand(LPTSTR lpszCommand);

매개 변수

lpszCommand
애플리케이션에서 받은 DDE 명령 문자열을 가리킵니다.

Return Value

명령이 처리되는 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

기본 구현은 명령이 문서 열기 요청인지 여부를 검사 지정한 문서를 엽니다. Windows 파일 관리자는 일반적으로 사용자가 데이터 파일을 두 번 클릭할 때 이러한 DDE 명령 문자열을 보냅니다. 인쇄할 명령과 같은 다른 DDE 실행 명령을 처리하도록 이 함수를 재정의합니다.

예시

BOOL CMyApp::OnDDECommand(LPTSTR lpszCommand)
{
   if (CWinApp::OnDDECommand(lpszCommand))
      return TRUE;

   // Handle any DDE commands recognized by your application
   // and return TRUE.  See implementation of CWinApp::OnDDEComand
   // for example of parsing the DDE command string.

   // Return FALSE for any DDE commands you do not handle.
   return FALSE;
}

CWinApp::OnFileNew

ID_FILE_NEW 명령을 구현합니다.

afx_msg void OnFileNew();

설명

이 멤버 함수를 ON_COMMAND( ID_FILE_NEW, OnFileNew )CWinApp 사용하려면 클래스 메시지 맵에 문을 추가해야 합니다. 사용하도록 설정된 경우 이 함수는 File New 명령의 실행을 처리합니다.

이 멤버 함수를 재정의하는 방법에 대한 기본 동작 및 지침에 대한 자세한 내용은 Technical Note 22를 참조하세요.

예시

// The following message map, produced by the Application Wizard, binds
// the File New, Open, and Print Setup menu commands to default
// framework implementations of these commands.
BEGIN_MESSAGE_MAP(CStdApp, CWinApp)
// Standard file based document commands
ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)
// Standard print setup command
ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()

 

// The following message map illustrates how to rebind the
// File New, Open and Print Setup menu commands to handlers that
// you implement in your CWinApp-derived class.
// Note, you can name the handler CCustomApp::OnFileNew instead of
// CCustomApp::OnMyFileNew, and likewise for the other handlers, if desired.
BEGIN_MESSAGE_MAP(CCustomApp, CWinApp)
ON_COMMAND(ID_FILE_NEW, &CCustomApp::OnMyFileNew)
ON_COMMAND(ID_FILE_OPEN, &CCustomApp::OnMyFileOpen)
ON_COMMAND(ID_FILE_PRINT_SETUP, &CCustomApp::OnMyFilePrintSetup)
END_MESSAGE_MAP()

CWinApp::OnFileOpen

ID_FILE_OPEN 명령을 구현합니다.

afx_msg void OnFileOpen();

설명

이 멤버 함수를 ON_COMMAND( ID_FILE_OPEN, OnFileOpen )CWinApp 사용하려면 클래스 메시지 맵에 문을 추가해야 합니다. 사용하도록 설정된 경우 이 함수는 파일 열기 명령의 실행을 처리합니다.

이 멤버 함수를 재정의하는 방법에 대한 기본 동작 및 지침에 대한 자세한 내용은 Technical Note 22를 참조하세요.

예시

// The following message map, produced by the Application Wizard, binds
// the File New, Open, and Print Setup menu commands to default
// framework implementations of these commands.
BEGIN_MESSAGE_MAP(CStdApp, CWinApp)
// Standard file based document commands
ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)
// Standard print setup command
ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()

 

// The following message map illustrates how to rebind the
// File New, Open and Print Setup menu commands to handlers that
// you implement in your CWinApp-derived class.
// Note, you can name the handler CCustomApp::OnFileNew instead of
// CCustomApp::OnMyFileNew, and likewise for the other handlers, if desired.
BEGIN_MESSAGE_MAP(CCustomApp, CWinApp)
ON_COMMAND(ID_FILE_NEW, &CCustomApp::OnMyFileNew)
ON_COMMAND(ID_FILE_OPEN, &CCustomApp::OnMyFileOpen)
ON_COMMAND(ID_FILE_PRINT_SETUP, &CCustomApp::OnMyFilePrintSetup)
END_MESSAGE_MAP()

CWinApp::OnFilePrintSetup

ID_FILE_PRINT_SETUP 명령을 구현합니다.

afx_msg void OnFilePrintSetup();

설명

이 멤버 함수를 ON_COMMAND( ID_FILE_PRINT_SETUP, OnFilePrintSetup )CWinApp 사용하려면 클래스 메시지 맵에 문을 추가해야 합니다. 사용하도록 설정된 경우 이 함수는 파일 인쇄 명령의 실행을 처리합니다.

이 멤버 함수를 재정의하는 방법에 대한 기본 동작 및 지침에 대한 자세한 내용은 Technical Note 22를 참조하세요.

예시

// The following message map, produced by the Application Wizard, binds
// the File New, Open, and Print Setup menu commands to default
// framework implementations of these commands.
BEGIN_MESSAGE_MAP(CStdApp, CWinApp)
// Standard file based document commands
ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)
// Standard print setup command
ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()

 

// The following message map illustrates how to rebind the
// File New, Open and Print Setup menu commands to handlers that
// you implement in your CWinApp-derived class.
// Note, you can name the handler CCustomApp::OnFileNew instead of
// CCustomApp::OnMyFileNew, and likewise for the other handlers, if desired.
BEGIN_MESSAGE_MAP(CCustomApp, CWinApp)
ON_COMMAND(ID_FILE_NEW, &CCustomApp::OnMyFileNew)
ON_COMMAND(ID_FILE_OPEN, &CCustomApp::OnMyFileOpen)
ON_COMMAND(ID_FILE_PRINT_SETUP, &CCustomApp::OnMyFilePrintSetup)
END_MESSAGE_MAP()

CWinApp::OnHelp

현재 컨텍스트를 사용하여 애플리케이션 내에서 F1 도움말을 처리합니다.

afx_msg void OnHelp();

설명

일반적으로 F1 키에 대한 액셀러레이터 키 항목도 추가합니다. F1 키를 사용하도록 설정하는 것은 요구 사항이 아니라 규칙일 뿐입니다.

이 멤버 함수를 ON_COMMAND( ID_HELP, OnHelp )CWinApp 사용하려면 클래스 메시지 맵에 문을 추가해야 합니다. 사용하도록 설정된 경우 사용자가 F1 키를 누를 때 프레임워크에서 호출됩니다.

이 메시지 처리기 함수의 기본 구현은 현재 창, 대화 상자 또는 메뉴 항목에 해당하는 도움말 컨텍스트를 결정한 다음 WINHELP.EXE를 호출합니다. 현재 사용할 수 있는 컨텍스트가 없는 경우 함수는 기본 컨텍스트를 사용합니다.

현재 포커스가 있는 창, 대화 상자, 메뉴 항목 또는 도구 모음 단추가 아닌 다른 항목으로 도움말 컨텍스트를 설정하려면 이 멤버 함수를 재정의합니다. 원하는 도움말 컨텍스트 ID를 사용하여 호출 WinHelp 합니다.

CWinApp::OnHelpFinder

ID_HELP_FINDER 및 ID_DEFAULT_HELP 명령을 처리합니다.

afx_msg void OnHelpFinder();

설명

이 멤버 함수를 ON_COMMAND( ID_HELP_FINDER, OnHelpFinder )CWinApp 사용하려면 클래스 메시지 맵에 문을 추가해야 합니다. 사용하도록 설정하면 애플리케이션 사용자가 도움말 찾기 명령을 선택하여 표준 HELP_FINDER 토픽으로 호출 WinHelp 할 때 프레임워크에서 이 메시지 처리기 함수를 호출합니다.

CWinApp::OnHelpIndex

ID_HELP_INDEX 명령을 처리하고 기본 도움말 항목을 제공합니다.

afx_msg void OnHelpIndex();

설명

이 멤버 함수를 ON_COMMAND( ID_HELP_INDEX, OnHelpIndex )CWinApp 사용하려면 클래스 메시지 맵에 문을 추가해야 합니다. 사용하도록 설정하면 애플리케이션 사용자가 도움말 인덱스 명령을 선택하여 표준 HELP_INDEX 토픽으로 호출 WinHelp 할 때 프레임워크에서 이 메시지 처리기 함수를 호출합니다.

CWinApp::OnHelpUsing

ID_HELP_USING 명령을 처리합니다.

afx_msg void OnHelpUsing();

설명

이 멤버 함수를 ON_COMMAND( ID_HELP_USING, OnHelpUsing )CWinApp 사용하려면 클래스 메시지 맵에 문을 추가해야 합니다. 프레임워크는 애플리케이션 사용자가 도움말 사용 명령을 선택하여 표준 HELP_HELPONHELP 토픽을 사용하여 애플리케이션을 호출 WinHelp 할 때 이 메시지 처리기 함수를 호출합니다.

CWinApp::OnIdle

유휴 시간 처리를 수행하려면 이 멤버 함수를 재정의합니다.

virtual BOOL OnIdle(LONG lCount);

매개 변수

lCount
애플리케이션의 메시지 큐가 비어 있을 때 매번 OnIdle 증분된 카운터가 호출됩니다. 이 수는 새 메시지가 처리될 때마다 0으로 다시 설정됩니다. lCount 매개 변수를 사용하여 메시지를 처리하지 않고 애플리케이션이 유휴 상태인 상대적인 시간을 확인할 수 있습니다.

Return Value

0이 아닌 경우 더 많은 유휴 처리 시간을 받습니다. 유휴 시간이 더 이상 필요하지 않은 경우 0입니다.

설명

OnIdle 는 애플리케이션의 메시지 큐가 비어 있을 때 기본 메시지 루프에서 호출됩니다. 재정의를 사용하여 고유한 백그라운드 유휴 처리기 작업을 호출합니다.

OnIdle 유휴 처리 시간이 필요하지 않음을 나타내려면 0을 반환해야 합니다. lCount 매개 변수는 메시지 큐가 비어 있을 때 호출될 때마다 OnIdle 증가하며 새 메시지가 처리될 때마다 0으로 다시 설정됩니다. 이 수에 따라 다른 유휴 루틴을 호출할 수 있습니다.

다음은 유휴 루프 처리를 요약한 것입니다.

  1. Microsoft Foundation 클래스 라이브러리의 메시지 루프가 메시지 큐를 검사 보류 중인 메시지를 찾지 못하면 애플리케이션 개체를 호출 OnIdle 하고 0을 lCount 인수로 제공합니다.

  2. OnIdle 는 일부 처리를 수행하고 0이 아닌 값을 반환하여 추가 처리를 수행하기 위해 다시 호출되어야 함을 나타냅니다.

  3. 메시지 루프는 메시지 큐를 다시 검사. 보류 중인 메시지가 없으면 다시 호출 OnIdle 되어 lCount 인수가 증가합니다.

  4. 결국 모든 OnIdle 유휴 작업 처리를 완료하고 0을 반환합니다. 그러면 메시지 큐에서 다음 메시지를 받을 때까지 메시지 루프가 호출 OnIdle 을 중지하도록 지시합니다. 이때 인수가 0으로 설정된 상태에서 유휴 주기가 다시 시작됩니다.

애플리케이션이 반환될 때까지 OnIdle 사용자 입력을 처리할 수 없으므로 긴 작업을 OnIdle 수행하지 마세요.

참고 항목

업데이트의 OnIdle 기본 구현은 메뉴 항목 및 도구 모음 단추와 같은 사용자 인터페이스 개체를 명령하고 내부 데이터 구조 클린 수행합니다. 따라서 재정OnIdle의하는 경우 재정의된 lCount 버전에서 호출 CWinApp::OnIdle 해야 합니다. 먼저 모든 기본 클래스 유휴 처리(즉, 기본 클래스 OnIdle 가 0을 반환할 때까지)를 호출합니다. 기본 클래스 처리가 완료되기 전에 작업을 수행해야 하는 경우 기본 클래스 구현을 검토하여 작업을 수행하는 동안 적절한 lCount 를 선택합니다.

메시지 큐에서 메시지를 검색할 때마다 호출하지 않으려는 OnIdle 경우 CWinThreadIsIdleMessage를 재정의할 수 있습니다. 애플리케이션이 매우 짧은 타이머를 설정했거나 시스템에서 WM_SYSTIMER 메시지를 OnIdle 보내는 경우 반복적으로 호출되고 성능이 저하됩니다.

예시

다음 두 예제에서는 사용 OnIdle방법을 보여 줍니다. 첫 번째 예제에서는 lCount 인수를 사용하여 두 개의 유휴 작업을 처리하여 작업의 우선 순위를 지정합니다. 첫 번째 작업은 높은 우선 순위이며 가능하면 언제든지 수행해야 합니다. 두 번째 작업은 덜 중요하며 사용자 입력에 긴 일시 중지가 있는 경우에만 수행해야 합니다. 기본 클래스 버전의 .에 대한 호출을 확인합니다 OnIdle. 두 번째 예제에서는 우선 순위가 다른 유휴 작업 그룹을 관리합니다.

BOOL CMyApp::OnIdle(LONG lCount)
{
   BOOL bMore = CWinApp::OnIdle(lCount);

   if (lCount == 0)
   {
      TRACE(_T("App idle for short period of time\n"));
      bMore = TRUE;
   }
   else if (lCount == 10)
   {
      TRACE(_T("App idle for longer amount of time\n"));
      bMore = TRUE;
   }
   else if (lCount == 100)
   {
      TRACE(_T("App idle for even longer amount of time\n"));
      bMore = TRUE;
   }
   else if (lCount == 1000)
   {
      TRACE(_T("App idle for quite a long period of time\n"));
      // bMore is not set to TRUE, no longer need idle
      // IMPORTANT: bMore is not set to FALSE since CWinApp::OnIdle may
      // have more idle tasks to complete.
   }

   return bMore;
   // return TRUE as long as there are any more idle tasks
}

CWinApp::OpenDocumentFile

프레임워크는 이 메서드를 호출하여 애플리케이션에 대한 명명된 CDocument 파일을 엽니다.

virtual CDocument* OpenDocumentFile(
    LPCTSTR lpszFileName
    BOOL bAddToMRU = TRUE);

매개 변수

lpszFileName
[in] 열려는 파일의 이름입니다.

bAddToMRU
[in] TRUE는 문서가 가장 최근 파일 중 하나임을 나타냅니다. FALSE는 문서가 최신 파일 중 하나가 아님을 나타냅니다.

Return Value

성공하면 포인터입니다 CDocument . 그렇지 않으면 NULL입니다.

설명

해당 이름의 문서가 이미 열려 있으면 해당 문서가 포함된 첫 번째 프레임 창에 포커스가 표시됩니다. 애플리케이션에서 여러 문서 서식 파일을 지원하는 경우 프레임워크는 파일 이름 확장명을 사용하여 적절한 문서 서식 파일을 찾아 문서를 로드하려고 합니다. 성공하면 문서 서식 파일은 문서에 대한 프레임 창과 보기를 만듭니다.

예시

if (m_lpCmdLine[0] == _T('\0'))
{
   // Create a new (empty) document.
   OnFileNew();
}
else
{
   // Open a file passed as the first command line parameter.
   OpenDocumentFile(m_lpCmdLine);
}

CWinApp::P arseCommandLine

이 멤버 함수를 호출하여 명령줄을 구문 분석하고 매개 변수를 CCommandLineInfo::P arseParam으로 한 번에 하나씩 보냅니다.

void ParseCommandLine(CCommandLineInfo& rCmdInfo);

매개 변수

rCmdInfo
CCommandLineInfo 개체에 대한 참조입니다.

설명

애플리케이션 마법사를 사용하여 새 MFC 프로젝트를 시작하면 애플리케이션 마법사에서 로컬 인스턴스를 CCommandLineInfo만든 다음 InitInstance 멤버 함수에서 호출 ProcessShellCommand 합니다ParseCommandLine. 명령줄은 아래에 설명된 경로를 따릅니다.

  1. 만들어 InitInstance지면 개체가 CCommandLineInfo .에 ParseCommandLine전달됩니다.

  2. ParseCommandLine 는 각 매개 변수에 대해 한 번씩 반복적으로 호출 CCommandLineInfo::ParseParam 합니다.

  3. ParseParam는 개체를 CCommandLineInfo 채운 다음 ProcessShellCommand전달합니다.

  4. ProcessShellCommand 는 명령줄 인수 및 플래그를 처리합니다.

필요에 따라 직접 호출 ParseCommandLine 할 수 있습니다.

명령줄 플래그 에 대한 설명은 CCommandLineInfo::m_nShellCommand 참조하세요.

CWinApp::P reTranslateMessage

Windows 함수 TranslateMessage 및 DispatchMessage에 디스패치되기 전에 창 메시지를 필터링하도록 이 함수를 재정의합니다. 기본 구현은 가속기 키 변환을 수행하므로 재정의 CWinApp::PreTranslateMessage 된 버전에서 멤버 함수를 호출해야 합니다.

virtual BOOL PreTranslateMessage(MSG* pMsg);

매개 변수

pMsg
처리할 메시지를 포함하는 MSG 구조체에 대한 포인터입니다.

Return Value

메시지가 완전히 처리되고 PreTranslateMessage 더 이상 처리되지 않아야 하는 경우 0이 아닙니다. 메시지를 정상적인 방식으로 처리해야 하는 경우 0입니다.

CWinApp::P rocessMessageFilter

프레임워크의 후크 함수는 이 멤버 함수를 호출하여 특정 Windows 메시지를 필터링하고 응답합니다.

virtual BOOL ProcessMessageFilter(
    int code,
    LPMSG lpMsg);

매개 변수

code
후크 코드를 지정합니다. 이 멤버 함수는 코드를 사용하여 lpMsg를 처리하는 방법을 결정합니다.

lpMsg
Windows MSGtructure에 대한 포인터입니다.

Return Value

메시지가 처리되는 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

후크 함수는 애플리케이션의 일반 메시지 처리로 전송되기 전에 이벤트를 처리합니다.

이 고급 기능을 재정의하는 경우 기본 클래스 버전을 호출하여 프레임워크의 후크 처리를 기본.

CWinApp::P rocessShellCommand

이 멤버 함수는 rCmdInfo로 식별된 개체에서 CCommandLineInfo 전달된 매개 변수를 수락하고 표시된 작업을 수행하기 위해 InitInstance에서 호출됩니다.

BOOL ProcessShellCommand(CCommandLineInfo& rCmdInfo);

매개 변수

rCmdInfo
CCommandLineInfo 개체에 대한 참조입니다.

Return Value

셸 명령이 성공적으로 처리되면 0이 아닌 경우 0이면 InitInstance에서 FALSE를 반환합니다.

설명

애플리케이션 마법사를 사용하여 새 MFC 프로젝트를 시작하면 애플리케이션 마법사에서 로컬 인스턴스를 CCommandLineInfo만든 다음 멤버 함수에서 를 호출하고 ParseCommandLineInitInstance 호출 ProcessShellCommand 합니다. 명령줄은 아래에 설명된 경로를 따릅니다.

  1. 만들어 InitInstance지면 개체가 CCommandLineInfo .에 ParseCommandLine전달됩니다.

  2. ParseCommandLine그런 다음 각 매개 변수에 대해 한 번씩 CCommandLineInfo::P arseParam을 반복적으로 호출합니다.

  3. ParseParam 은 개체를 CCommandLineInfo 채운 다음 에 전달됩니다 ProcessShellCommand.

  4. ProcessShellCommand 는 명령줄 인수 및 플래그를 처리합니다.

CCommandLineInfo::m_nShellCommand 식별되는 개체의 CCommandLineInfo 데이터 멤버는 클래스 내에 CCommandLineInfo 정의된 다음과 같은 열거형 형식입니다.

enum {
    FileNew,
    FileOpen,
    FilePrint,
    FilePrintTo,
    FileDDE
    };

이러한 각 값에 대한 간략한 설명은 다음을 참조하세요 CCommandLineInfo::m_nShellCommand.

CWinApp::P rocessWndProcException

프레임워크는 처리기가 애플리케이션의 메시지 또는 명령 처리기 중 하나에서 throw된 예외를 catch하지 않을 때마다 이 멤버 함수를 호출합니다.

virtual LRESULT ProcessWndProcException(
    CException* e,
    const MSG* pMsg);

매개 변수

e
catch되지 않은 예외에 대한 포인터입니다.

pMsg
프레임워크에서 예외를 발생시킨 Windows 메시지에 대한 정보가 들어 있는 MSGtructure입니다.

Return Value

Windows에 반환해야 하는 값입니다. 일반적으로 Windows 메시지의 경우 0L이고 명령 메시지의 경우 1L(TRUE)입니다.

설명

이 멤버 함수를 직접 호출하지 마세요.

이 멤버 함수의 기본 구현은 메시지 상자를 만듭니다. 메뉴, 도구 모음 또는 가속기 명령 오류로 시작되지 않은 예외가 발생하면 메시지 상자에 "명령 실패" 메시지가 표시됩니다. 그렇지 않으면 "내부 애플리케이션 오류" 메시지가 표시됩니다.

예외의 전역 처리를 제공하도록 이 멤버 함수를 재정의합니다. 메시지 상자를 표시하려는 경우에만 기본 기능을 호출합니다.

CWinApp::Register

에서 처리 RegisterShellFileTypes하지 않는 등록 작업을 수행합니다.

virtual BOOL Register();

Return Value

성공하면 0이 아닌 값이고, 실패하면 0입니다.

설명

기본 구현은 단순히 TRUE를 반환합니다. 사용자 지정된 등록 단계를 제공하도록 이 함수를 재정의합니다.

CWinApp::RegisterShellFileTypes

이 멤버 함수를 호출하여 Windows 파일 관리자에 애플리케이션의 모든 문서 형식을 등록합니다.

void RegisterShellFileTypes(BOOL bCompat = FALSE);

매개 변수

bCompat
[in] TRUE는 셸 명령 인쇄 및 인쇄 대상에 대한 등록 항목을 추가하여 사용자가 셸에서 직접 파일을 인쇄하거나 파일을 프린터 개체로 끌어서 인쇄할 수 있도록 합니다. 또한 DefaultIcon 키를 추가합니다. 기본적으로 이 매개 변수는 이전 버전과의 호환성을 위해 FALSE입니다.

설명

이렇게 하면 사용자가 파일 관리자 내에서 두 번 클릭하여 애플리케이션에서 만든 데이터 파일을 열 수 있습니다. 애플리케이션의 각 문서 템플릿에 대해 AddDocTemplate을 호출한 후 호출 RegisterShellFileTypes합니다. 또한 호출할 때 EnableShellOpen 멤버 함수를 호출 RegisterShellFileTypes합니다.

RegisterShellFileTypes애플리케이션이 기본 있는 CDocTemplate 개체 목록을 반복하고 각 문서 템플릿에 대해 Windows에서 파일 연결에 대해 기본 등록 데이터베이스에 항목을 추가합니다. 파일 관리자는 사용자가 두 번 클릭할 때 이러한 항목을 사용하여 데이터 파일을 엽니다. 이렇게 하면 . 애플리케이션을 사용한 REG 파일입니다.

참고 항목

RegisterShellFileTypes 는 사용자가 관리자 권한으로 프로그램을 실행하는 경우에만 작동합니다. 프로그램에 관리자 권한이 없는 경우 레지스트리 키를 변경할 수 없습니다.

등록 데이터베이스가 이미 지정된 파일 이름 확장자를 다른 파일 형식과 연결하는 경우 새 연결이 만들어지지 않습니다. CDocTemplate 이 정보를 등록하는 데 필요한 문자열 형식은 클래스를 참조하세요.

CWinApp::RegisterWithRestartManager

애플리케이션을 다시 시작 관리자에 등록합니다.

virtual HRESULT RegisterWithRestartManager(
    BOOL bRegisterRecoveryCallback,
    const CString& strRestartIdentifier);

virtual HRESULT RegisterWithRestartManager(
    LPCWSTR pwzCommandLineArgs,
    DWORD dwRestartFlags,
    APPLICATION_RECOVERY_CALLBACK pRecoveryCallback,
    LPVOID lpvParam,
    DWORD dwPingInterval,
    DWORD dwCallbackFlags);

매개 변수

bRegisterRecoveryCallback
[in] TRUE는 애플리케이션의 이 인스턴스가 복구 콜백 함수를 사용한다는 것을 나타냅니다. FALSE는 그렇지 않음을 나타냅니다. 프레임워크는 애플리케이션이 예기치 않게 종료되면 복구 콜백 함수를 호출합니다. 자세한 내용은 CWinApp::ApplicationRecoveryCallback을 참조하세요.

strRestartIdentifier
[in] 다시 시작 관리자의 이 인스턴스를 식별하는 고유 문자열입니다. 다시 시작 관리자 식별자는 애플리케이션의 각 인스턴스에 대해 고유합니다.

pwzCommandLineArgs
[in] 명령줄의 추가 인수를 포함하는 문자열입니다.

dwRestartFlags
[in] 다시 시작 관리자에 대한 선택적 플래그입니다. 자세한 내용은 주의 섹션을 참조하세요.

pRecoveryCallback
[in] 복구 콜백 함수입니다. 이 함수는 LPVOID 매개 변수를 입력으로 사용하고 DWORD를 반환해야 합니다. 기본 복구 콜백 함수는 .입니다 CWinApp::ApplicationRecoveryCallback.

lpvParam
[in] 복구 콜백 함수에 대한 입력 매개 변수입니다. 자세한 내용은 CWinApp::ApplicationRecoveryCallback을 참조하세요.

dwPingInterval
[in] 다시 시작 관리자가 복구 콜백 함수가 반환되기를 기다리는 시간입니다. 이 매개 변수는 밀리초 단위입니다.

dwCallbackFlags
[in] 복구 콜백 함수에 전달된 플래그입니다. 향후 사용을 위해 예약되어 있습니다.

Return Value

메서드가 성공하면 S_OK. 그렇지 않으면 오류 코드입니다.

설명

애플리케이션에서 파일 자동 저장에 기본 MFC 구현을 사용하는 경우 간단한 버전의 RegisterWithRestartManager.를 사용해야 합니다. 애플리케이션의 RegisterWithRestartManager 자동 저장 동작을 사용자 지정하려는 경우 복잡한 버전을 사용합니다.

strRestartIdentifierRegisterWithRestartManager에 대한 빈 문자열을 사용하여 이 메서드를 호출하는 경우 다시 시작 관리자의 이 인스턴스에 대한 고유 식별자 문자열을 만듭니다.

애플리케이션이 예기치 않게 종료되면 다시 시작 관리자는 명령줄에서 애플리케이션을 다시 시작하고 고유한 다시 시작 식별자를 선택적 인수로 제공합니다. 이 시나리오에서 프레임워크는 두 번 호출합니다 RegisterWithRestartManager . 첫 번째 호출은 문자열 식별자에 대한 빈 문자열이 있는 CWinApp::InitInstance에서 제공됩니다. 그런 다음 CWinApp::P rocessShellCommand 메서드가 고유한 다시 시작 식별자를 사용하여 호출 RegisterWithRestartManager 합니다.

애플리케이션을 다시 시작 관리자에 등록한 후 다시 시작 관리자는 애플리케이션을 모니터링합니다. 애플리케이션이 예기치 않게 종료되면 다시 시작 관리자는 종료 프로세스 중에 복구 콜백 함수를 호출합니다. 다시 시작 관리자는 dwPingInterval에서 복구 콜백 함수의 응답을 기다립니다. 복구 콜백 함수가 이 시간 내에 응답하지 않으면 복구 콜백 함수를 실행하지 않고 애플리케이션이 종료됩니다.

기본적으로 dwRestartFlags는 지원되지 않지만 나중에 사용할 수 있습니다. dwRestartFlags가능한 값은 다음과 같습니다.

  • RESTART_NO_CRASH

  • RESTART_NO_HANG

  • RESTART_NO_PATCH

  • RESTART_NO_REBOOT

CWinApp::ReopenPreviousFilesAtRestart

애플리케이션이 예기치 않게 종료되었을 때 다시 시작 관리자가 열려 있는 파일을 다시 열지 여부를 결정합니다.

virtual BOOL ReopenPreviousFilesAtRestart() const;

Return Value

TRUE는 다시 시작 관리자가 이전에 열려 있는 파일을 다시 연 것을 나타냅니다. FALSE는 다시 시작 관리자가 그렇지 않음을 나타냅니다.

CWinApp::RestartInstance

다시 시작 관리자가 시작한 애플리케이션 다시 시작을 처리합니다.

virtual BOOL CWinApp::RestartInstance();

Return Value

데이터 복구 처리기가 이전에 열린 문서를 열면 TRUE입니다. 데이터 복구 처리기에 오류가 있거나 이전에 열려 있는 문서가 없는 경우 FALSE입니다.

설명

다시 시작 관리자가 애플리케이션을 다시 시작하면 프레임워크에서 이 메서드를 호출합니다. 이 메서드는 데이터 복구 처리기를 검색하고 자동 저장 파일을 복원합니다. 이 메서드는 CDataRecoveryHandler::RestoreAutosavedDocuments를 호출 하여 사용자가 자동 저장 파일을 복원할지 여부를 결정합니다 .

CDataRecoveryHandler에서 열려 있는 문서가 없는 것으로 확인되면 이 메서드는 FALSE를 반환합니다. 열려 있는 문서가 없으면 애플리케이션이 일반적으로 시작됩니다.

CWinApp::RestoreAutosavedFilesAtRestart

애플리케이션을 다시 시작할 때 다시 시작 관리자가 자동 저장 파일을 복원할지 여부를 결정합니다.

virtual BOOL RestoreAutosavedFilesAtRestart() const;

Return Value

TRUE는 다시 시작 관리자가 자동 저장 파일을 복원했음을 나타냅니다. FALSE는 다시 시작 관리자가 그렇지 않음을 나타냅니다.

CWinApp::Run

기본 메시지 루프를 제공합니다.

virtual int Run();

Return Value

에서 int 반환 WinMain하는 값입니다.

설명

Run 는 애플리케이션이 WM_QUIT 메시지를 받을 때까지 Windows 메시지를 획득하고 디스패치합니다. 애플리케이션의 메시지 큐에 현재 메시지가 Run 없는 경우 OnIdle을 호출하여 유휴 시간 처리를 수행합니다. 들어오는 메시지는 특수 처리를 위해 PreTranslateMessage 멤버 함수로 이동한 다음 표준 키보드 번역을 위한 Windows 함수 TranslateMessage 로 이동합니다. 마지막으로 DispatchMessage Windows 함수가 호출됩니다.

Run 는 거의 재정의되지 않지만 특별한 동작을 제공하도록 재정의할 수 있습니다.

CWinApp::RunAutomated

클라이언트 애플리케이션에서 서버 애플리케이션을 시작했는지 여부를 나타내는 " /Automation" 또는 " -Automation" 옵션이 있는지 여부를 확인하려면 이 함수를 호출합니다.

BOOL RunAutomated();

Return Value

옵션을 찾은 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

있는 경우 명령줄에서 옵션이 제거됩니다. OLE 자동화에 대한 자세한 내용은 Automation 서버 문서를 참조하세요.

CWinApp::RunEmbedded

클라이언트 애플리케이션에서 서버 애플리케이션을 시작했는지 여부를 나타내는 " /Embedding" 또는 " -Embedding" 옵션이 있는지 여부를 확인하려면 이 함수를 호출합니다.

BOOL RunEmbedded();

Return Value

옵션을 찾은 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

있는 경우 명령줄에서 옵션이 제거됩니다. 포함에 대한 자세한 내용은 서버: 서버 구현 문서를 참조하세요.

CWinApp::SaveAllModified

애플리케이션의 기본 프레임 창을 닫거나 WM_QUERYENDSESSION 메시지를 통해 모든 문서를 저장하기 위해 프레임워크에서 호출됩니다.

virtual BOOL SaveAllModified();

Return Value

애플리케이션을 종료해도 안전한 경우 0이 아닌 경우 애플리케이션을 종료하는 것이 안전하지 않은 경우 0입니다.

설명

이 멤버 함수의 기본 구현은 애플리케이션 내에서 수정된 모든 문서에 대해 CDocument::SaveModified 멤버 함수를 차례로 호출합니다.

CWinApp::SelectPrinter

이 멤버 함수를 호출하여 특정 프린터를 선택하고 인쇄 대화 상자에서 이전에 선택한 프린터를 해제합니다.

void SelectPrinter(
    HANDLE hDevNames,
    HANDLE hDevMode,
    BOOL bFreeOld = TRUE);

매개 변수

hDevNames
특정 프린터의 드라이버, 디바이스 및 출력 포트 이름을 식별하는 DEVNAMEStructure에 대한 핸들입니다.

hDevMode
프린터의 디바이스 초기화 및 환경에 대한 정보를 지정하는 DEVMODE 구조체에 대한 핸들입니다.

bFreeOld
이전에 선택한 프린터를 해제합니다.

설명

hDevModehDevNames가 모두 NULL인 SelectPrinter 경우 현재 기본 프린터를 사용합니다.

CWinApp::SetHelpMode

애플리케이션의 도움말 유형을 설정합니다.

void SetHelpMode(AFX_HELP_TYPE eHelpType);

매개 변수

eHelpType
사용할 도움말의 유형을 지정합니다. 자세한 내용은 CWinApp::m_eHelpType 참조하세요.

설명

애플리케이션의 도움말 유형을 설정합니다.

애플리케이션의 도움말 유형을 HTMLHelp로 설정하려면 EnableHTMLHelp를 호출할 수 있습니다. 호출 EnableHTMLHelp한 후에는 애플리케이션이 HTMLHelp를 도움말 애플리케이션으로 사용해야 합니다. WinHelp를 사용하도록 변경하려면 eHelpType을 호출 SetHelpMode 하여 설정합니다.afxWinHelp

CWinApp::SetRegistryKey

애플리케이션 설정이 INI 파일 대신 레지스트리에 저장되도록 합니다.

void SetRegistryKey(LPCTSTR lpszRegistryKey);
void SetRegistryKey(UINT nIDRegistryKey);

매개 변수

lpszRegistryKey
키의 이름을 포함하는 문자열에 대한 포인터입니다.

nIDRegistryKey
레지스트리 키의 이름을 포함하는 문자열 리소스의 ID입니다.

설명

이 함수는 m_pszRegistryKey 설정합니다. 이 함수는 다음의 < GetProfileStringWriteProfileInta0GetProfileInt/&m_pszRegistryKey 및 WriteProfileString 멤버 함수CWinApp에서 사용됩니다. 이 함수가 호출된 경우 가장 최근에 사용한(MRU) 파일 목록도 레지스트리에 저장됩니다. 레지스트리 키는 일반적으로 회사의 이름입니다. HKEY_CURRENT_USER\Software\company name\<application name>\<section name>>\<<value name> 형식의 키에 저장됩니다.

CWinApp::SupportsApplicationRecovery

다시 시작 관리자가 예기치 않게 종료된 애플리케이션을 복구하는지 여부를 결정합니다.

virtual BOOL SupportsApplicationRecovery() const;

Return Value

TRUE는 다시 시작 관리자가 애플리케이션을 복구했음을 나타냅니다. FALSE는 다시 시작 관리자가 그렇지 않음을 나타냅니다.

CWinApp::SupportsAutosaveAtInterval

다시 시작 관리자가 열린 문서를 정기적으로 자동으로 저장할지 여부를 결정합니다.

virtual BOOL SupportsAutosaveAtInterval() const;

Return Value

TRUE는 다시 시작 관리자가 열려 있는 문서를 자동으로 저장했음을 나타냅니다. FALSE는 다시 시작 관리자가 그렇지 않음을 나타냅니다.

CWinApp::SupportsAutosaveAtRestart

애플리케이션이 다시 시작될 때 다시 시작 관리자가 열려 있는 문서를 자동으로 저장할지 여부를 결정합니다.

virtual BOOL SupportsAutosaveAtRestart() const;

Return Value

TRUE는 애플리케이션이 다시 시작될 때 다시 시작 관리자가 열려 있는 문서를 자동으로 저장했음을 나타냅니다. FALSE는 다시 시작 관리자가 그렇지 않음을 나타냅니다.

CWinApp::SupportsRestartManager

애플리케이션에서 다시 시작 관리자를 지원하는지 여부를 결정합니다.

virtual BOOL SupportsRestartManager() const;

Return Value

TRUE는 애플리케이션이 다시 시작 관리자를 지원했음을 나타냅니다. FALSE는 애플리케이션이 그렇지 않음을 나타냅니다.

CWinApp::등록 취소

애플리케이션 개체에 의해 등록된 모든 파일의 등록을 취소합니다.

virtual BOOL Unregister();

Return Value

성공하면 0이 아닌 값이고, 실패하면 0입니다.

설명

이 함수는 Unregister 애플리케이션 개체 및 Register 함수에서 수행하는 등록을 실행 취소합니다. 일반적으로 두 함수는 MFC에서 암시적으로 호출되므로 코드에 표시되지 않습니다.

사용자 지정 등록 취소 단계를 수행하도록 이 함수를 재정의합니다.

CWinApp::UnregisterShellFileTypes

이 멤버 함수를 호출하여 Windows 파일 관리자를 사용하여 애플리케이션의 모든 문서 형식을 등록 취소합니다.

void UnregisterShellFileTypes();

CWinApp::WinHelp

이 멤버 함수를 호출하여 WinHelp 애플리케이션을 호출합니다.

virtual void WinHelp(
    DWORD_PTR dwData,
    UINT nCmd = HELP_CONTEXT);

매개 변수

dwData
추가 데이터를 지정합니다. 사용되는 값은 nCmd 매개 변수의 값에 따라 달라집니다.

nCmd
요청한 도움말의 형식을 지정합니다. 가능한 값 목록 및 dwData 매개 변수에 미치는 영향은 WinHelp Windows 함수를 참조하세요.

설명

또한 프레임워크는 이 함수를 호출하여 WinHelp 애플리케이션을 호출합니다.

프레임워크는 애플리케이션이 종료될 때 WinHelp 애플리케이션을 자동으로 닫습니다.

예시

// Header File: HELPIDS.H
//
// This example header file is #include'd twice:
// (1) It is #include'd by the .CPP file that passes the DWORD
//     context i.d. to CWinApp::WinHelp.
// (2) It is #include'd in the [MAP] section of the .HPJ file,
//     to associate the help context string "HID_MYTOPIC" with
//     the help context numeric i.d., 101.
// The help context string "HID_MYTOPIC" is what identifies the
// help topic in the help .RTF source file, in the "#" footnote:
//     # HID_MYTOPIC
//
// Note, it is not necessary to manage help context id's this way
// for help topics associated with command id's and user interface
// id's defined in your RESOURCE.H file; you should use the MAKEHM
// tool via the custom build rule on your resource.h file to produce
// a help map (.HM) file for these id's.  It is necessary to manage
// help context id's as illustrated here only for help topics not
// associated with command id's or user interface id's.

#define HID_MYTOPIC 101

// Show the custom help topic that has the context string
// "HID_MYTOPIC" in the help .RTF file, and which is mapped
// to the DWORD i.d. HID_MYTOPIC in the above HELPIDS.H file.
AfxGetApp()->WinHelp(HID_MYTOPIC);

// The following is one line of code in the help map (.HM)
// file produced by the MAKEHM tool, which is called by the custom
// build rule on the resource.h file.  The MAKEHM tool reads the
// following #define in the application's RESOURCE.H file:
#define ID_MYCOMMAND 0x08004
// and adds a help id offset value of 0x10000 to create the
// help context DWORD value 0x18004:
// HID_MYCOMMAND                           0x18004
// See MFC Tech Note 28 for more information on help id offset values.

// Rarely will you need to directly call WinHelp yourself
// with the help context i.d. for a command or user interface
// object. The framework will call WinHelp automatically when
// the user, for example, hits F1 when the focus is on a
// My Command menu item. However, if you do want to directly
// call WinHelp for the help topic associated with the command,
// here is how you would do it:

AfxGetApp()->WinHelp(0x10000 + ID_MYCOMMAND);

CWinApp::WriteProfileBinary

이 멤버 함수를 호출하여 애플리케이션 레지스트리의 지정된 섹션 또는 에 이진 데이터를 씁니다. INI 파일.

BOOL WriteProfileBinary(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    LPBYTE pData,
    UINT nBytes);

매개 변수

lpszSection
항목이 포함된 섹션을 지정하는 null로 끝나는 문자열을 가리킵니다. 섹션이 없으면 만들어집니다. 섹션의 이름은 대/소문자를 구분합니다. 문자열은 대문자와 소문자의 조합일 수 있습니다.

lpszEntry
값을 쓸 항목이 들어 있는 null로 끝나는 문자열을 가리킵니다. 지정된 섹션에 항목이 없으면 해당 항목이 만들어집니다.

pData
쓸 데이터를 가리킵니다.

nBytes
쓸 바이트 수를 포함합니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

예시

이 예제에서는 MFC 애플리케이션의 모든 함수에서 사용할 수 있는 방법을 보여 주는 WriteProfileBinaryGetProfileBinary CWinApp 클래스를 가져오는 데 사용합니다CWinApp* pApp = AfxGetApp();.

CWinApp *pApp = AfxGetApp();

CString strSection = _T("My Section");
CString strItem = _T("My Binary Item");
double myData = 123.456e12;

pApp->WriteProfileBinary(strSection, strItem, (LPBYTE)&myData, sizeof(myData));
double *pData;
UINT n;
pApp->GetProfileBinary(strSection, strItem, (LPBYTE*)&pData, &n);
ASSERT(n == sizeof(myData));
ASSERT(myData = *pData);
delete[] pData; // free the buffer

또 다른 예제는 CWinApp::GetProfileBinary에 대한 예제를 참조하세요.

CWinApp::WriteProfileInt

이 멤버 함수를 호출하여 지정된 값을 애플리케이션 레지스트리의 지정된 섹션 또는 .에 씁니다. INI 파일.

BOOL WriteProfileInt(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    int nValue);

매개 변수

lpszSection
항목이 포함된 섹션을 지정하는 null로 끝나는 문자열을 가리킵니다. 섹션이 없으면 만들어집니다. 섹션의 이름은 대/소문자를 구분합니다. 문자열은 대문자와 소문자의 조합일 수 있습니다.

lpszEntry
값을 쓸 항목이 들어 있는 null로 끝나는 문자열을 가리킵니다. 지정된 섹션에 항목이 없으면 해당 항목이 만들어집니다.

nValue
쓸 값을 포함합니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

예시

이 예제에서는 CWinApp* pApp = AfxGetApp(); MFC 애플리케이션의 모든 함수에서 사용할 수 있는 방법을 보여 주는 WriteProfileStringWriteProfileIntGetProfileStringGetProfileInt CWinApp 클래스를 가져옵니다.

CWinApp *pApp = AfxGetApp();

CString strSection = _T("My Section");
CString strStringItem = _T("My String Item");
CString strIntItem = _T("My Int Item");

pApp->WriteProfileString(strSection, strStringItem, _T("test"));

CString strValue;
strValue = pApp->GetProfileString(strSection, strStringItem);
ASSERT(strValue == _T("test"));

pApp->WriteProfileInt(strSection, strIntItem, 1234);

int nValue;
nValue = pApp->GetProfileInt(strSection, strIntItem, 0);
ASSERT(nValue == 1234);

또 다른 예제는 CWinApp::GetProfileInt에 대한 예제를 참조하세요.

CWinApp::WriteProfileString

지정된 문자열을 애플리케이션 레지스트리의 지정된 섹션에 쓰려면 이 멤버 함수를 호출합니다. INI 파일.

BOOL WriteProfileString(
    LPCTSTR lpszSection,
    LPCTSTR lpszEntry,
    LPCTSTR lpszValue);

매개 변수

lpszSection
항목이 포함된 섹션을 지정하는 null로 끝나는 문자열을 가리킵니다. 섹션이 없으면 만들어집니다. 섹션의 이름은 대/소문자를 구분합니다. 문자열은 대문자와 소문자의 조합일 수 있습니다.

lpszEntry
값을 쓸 항목이 들어 있는 null로 끝나는 문자열을 가리킵니다. 지정된 섹션에 항목이 없으면 해당 항목이 만들어집니다. 이 매개 변수가 NULL이면 lpszSection에서 지정한 섹션이 삭제됩니다.

lpszValue
쓸 문자열을 가리킵니다. 이 매개 변수가 NULL이면 lpszEntry 매개 변수로 지정된 항목이 삭제됩니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

예시

CWinApp *pApp = AfxGetApp();

CString strSection = _T("My Section");
CString strStringItem = _T("My String Item");
CString strIntItem = _T("My Int Item");

pApp->WriteProfileString(strSection, strStringItem, _T("test"));

CString strValue;
strValue = pApp->GetProfileString(strSection, strStringItem);
ASSERT(strValue == _T("test"));

pApp->WriteProfileInt(strSection, strIntItem, 1234);

int nValue;
nValue = pApp->GetProfileInt(strSection, strIntItem, 0);
ASSERT(nValue == 1234);

또 다른 예제는 CWinApp::GetProfileInt에 대한 예제를 참조하세요.

CWinApp::SetAppID

애플리케이션에 대한 애플리케이션 사용자 모델 ID를 명시적으로 설정합니다. 사용자에게 사용자 인터페이스가 표시되기 전에 이 메서드를 호출해야 합니다(애플리케이션 생성자가 가장 좋은 위치).

void SetAppID(LPCTSTR lpcszAppID);

매개 변수

lpcszAppID
애플리케이션 사용자 모델 ID를 지정합니다.

설명

참고 항목

CWinThread 클래스
계층 구조 차트
방법: 다시 시작 관리자 지원 추가