Udostępnij za pośrednictwem


Klasa CWinApp

Klasa bazowa, z której pochodzi obiekt aplikacji systemu Windows.

Składnia

class CWinApp : public CWinThread

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CWinApp::CWinApp CWinApp Tworzy obiekt.

Metody publiczne

Nazwa/nazwisko opis
CWinApp::AddDocTemplate Dodaje szablon dokumentu do listy dostępnych szablonów dokumentów aplikacji.
CWinApp::AddToRecentFileList Dodaje nazwę pliku do listy ostatnio używanych plików (MRU).
CWinApp::ApplicationRecoveryCallback Wywoływana przez platformę, gdy aplikacja nieoczekiwanie kończy działanie.
CWinApp::CloseAllDocuments Zamyka wszystkie otwarte dokumenty.
CWinApp::CreatePrinterDC Tworzy kontekst urządzenia drukarki.
CWinApp::D elRegTree Usuwa określony klucz i wszystkie jego podklucze.
CWinApp::D oMessageBox Implementuje element AfxMessageBox dla aplikacji.
CWinApp::D oWaitCursor Włącza i wyłącza kursor oczekiwania.
CWinApp::EnableD2DSupport Umożliwia obsługę D2D aplikacji. Wywołaj tę metodę przed zainicjowanym głównym oknem.
CWinApp::EnableHtmlHelp Implementuje element HTMLHelp dla aplikacji, a nie WinHelp.
CWinApp::EnableTaskbarInteraction Włącza interakcję paska zadań.
CWinApp::ExitInstance Zastąpij, aby wyczyścić dane po zakończeniu działania aplikacji.
CWinApp::GetApplicationRecoveryParameter Pobiera parametr wejściowy dla metody odzyskiwania aplikacji.
CWinApp::GetApplicationRecoveryPingInterval Zwraca czas oczekiwania menedżera ponownego uruchamiania na zwrócenie funkcji wywołania zwrotnego odzyskiwania.
CWinApp::GetApplicationRestartFlags Zwraca flagi menedżera ponownego uruchamiania.
CWinApp::GetAppRegistryKey Zwraca klucz dla HKEY_CURRENT_USER\"Software"\RegistryKey\ProfileName.
CWinApp::GetDataRecoveryHandler Pobiera procedurę obsługi odzyskiwania danych dla tego wystąpienia aplikacji.
CWinApp::GetFirstDocTemplatePosition Pobiera pozycję pierwszego szablonu dokumentu.
CWinApp::GetHelpMode Pobiera typ pomocy używanej przez aplikację.
CWinApp::GetNextDocTemplate Pobiera pozycję szablonu dokumentu. Można używać rekursywnie.
CWinApp::GetPrinterDeviceDefaults Pobiera ustawienia domyślne urządzenia drukarki.
CWinApp::GetProfileBinary Pobiera dane binarne z wpisu w aplikacji . Plik INI.
CWinApp::GetProfileInt Pobiera liczbę całkowitą z wpisu w aplikacji . Plik INI.
CWinApp::GetProfileString Pobiera ciąg z wpisu w pliku aplikacji . Plik INI.
CWinApp::GetSectionKey Zwraca klucz dla HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\lpszSection.
CWinApp::HideApplication Ukrywa aplikację przed zamknięciem wszystkich dokumentów.
CWinApp::HtmlHelp HTMLHelp Wywołuje funkcję systemu Windows.
CWinApp::InitInstance Zastąpij, aby wykonać inicjowanie wystąpienia systemu Windows, takie jak tworzenie obiektów okna.
CWinApp::IsTaskbarInteractionEnabled Informuje, czy interakcja z paskiem zadań systemu Windows 7 jest włączona.
CWinApp::LoadCursor Ładuje zasób kursora.
CWinApp::LoadIcon Ładuje zasób ikony.
CWinApp::LoadOEMCursor Ładuje wstępnie zdefiniowany kursor systemu Windows OEM, który OCR_ stałe określone w systemie WINDOWS.H.
CWinApp::LoadOEMIcon Ładuje wstępnie zdefiniowaną ikonę producenta OEM systemu Windows, którą OIC_ stałe określone w systemie WINDOWS.H.
CWinApp::LoadStandardCursor Ładuje wstępnie zdefiniowany kursor systemu Windows, który IDC_ stałe określone w systemie WINDOWS.H.
CWinApp::LoadStandardIcon Ładuje wstępnie zdefiniowaną ikonę systemu Windows, którą IDI_ stałe określone w systemie WINDOWS.H.
CWinApp::OnDDECommand Wywoływana przez platformę w odpowiedzi na polecenie wykonywania dynamicznej wymiany danych (DDE).
CWinApp::OnIdle Zastąpić w celu wykonania przetwarzania bezczynności specyficznego dla aplikacji.
CWinApp::OpenDocumentFile Wywoływana przez platformę w celu otwarcia dokumentu z pliku.
CWinApp::P arseCommandLine Analizuje poszczególne parametry i flagi w wierszu polecenia.
CWinApp::P reTranslateMessage Filtruje komunikaty przed wysłaniem ich do funkcji TranslateMessage i DispatchMessage systemu Windows.
CWinApp::P rocessMessageFilter Przechwytuje niektóre komunikaty przed dotarciem do aplikacji.
CWinApp::P rocessShellCommand Obsługuje argumenty wiersza polecenia i flagi.
CWinApp::P rocessWndProcException Przechwytuje wszystkie nieobsługiwane wyjątki zgłaszane przez programy obsługi komunikatów i poleceń aplikacji.
CWinApp::Register Wykonuje rejestrację dostosowaną.
CWinApp::RegisterWithRestartManager Rejestruje aplikację za pomocą menedżera ponownego uruchamiania.
CWinApp::ReopenPreviousFilesAtRestart Określa, czy menedżer ponownego uruchamiania ponownie otwiera pliki, które były otwierane, gdy aplikacja zakończyła się nieoczekiwanie.
CWinApp::RestartInstance Obsługuje ponowne uruchomienie aplikacji zainicjowane przez menedżera ponownego uruchamiania.
CWinApp::RestoreAutosavedFilesAtRestart Określa, czy menedżer ponownego uruchamiania przywraca automatycznie zapisane pliki po ponownym uruchomieniu aplikacji.
CWinApp::Run Uruchamia domyślną pętlę komunikatów. Zastąpij, aby dostosować pętlę komunikatów.
CWinApp::RunAutomated Testuje wiersz polecenia aplikacji dla opcji /Automation . Nieaktualne. Zamiast tego użyj wartości w CCommandLineInfo::m_bRunAutomated po wywołaniu polecenia ParseCommandLine.
CWinApp::RunEmbedded Testuje wiersz polecenia aplikacji dla opcji /Embedding . Nieaktualne. Zamiast tego użyj wartości w CCommandLineInfo::m_bRunEmbedded po wywołaniu polecenia ParseCommandLine.
CWinApp::SaveAllModified Monituje użytkownika o zapisanie wszystkich zmodyfikowanych dokumentów.
CWinApp::SelectPrinter Wybiera drukarkę wskazaną wcześniej przez użytkownika za pośrednictwem okna dialogowego drukowania.
CWinApp::SetHelpMode Ustawia i inicjuje typ pomocy używanej przez aplikację.
CWinApp::SupportsApplicationRecovery Określa, czy menedżer ponownego uruchamiania odzyskuje nieoczekiwanie aplikację, która zakończyła działanie.
CWinApp::SupportsAutosaveAtInterval Określa, czy menedżer ponownego uruchamiania automatycznie otwiera dokumenty w regularnych odstępach czasu.
CWinApp::SupportsAutosaveAtRestart Określa, czy menedżer ponownego uruchamiania automatycznie zapisuje otwarte dokumenty po ponownym uruchomieniu aplikacji.
CWinApp::SupportsRestartManager Określa, czy aplikacja obsługuje menedżera ponownego uruchamiania.
CWinApp::Wyrejestrowywanie Wyrejestrowuje wszystko, co wiadomo, że jest rejestrowane przez CWinApp obiekt.
CWinApp::WinHelp WinHelp Wywołuje funkcję systemu Windows.
CWinApp::WriteProfileBinary Zapisuje dane binarne w wpisie w aplikacji . Plik INI.
CWinApp::WriteProfileInt Zapisuje liczbę całkowitą w wpisie w pliku aplikacji . Plik INI.
CWinApp::WriteProfileString Zapisuje ciąg do wpisu w pliku aplikacji . Plik INI.

Metody chronione

Nazwa/nazwisko opis
CWinApp::EnableShellOtwórz Umożliwia użytkownikowi otwieranie plików danych z Menedżera plików systemu Windows.
CWinApp::LoadStdProfileSettings Ładuje standard . Ustawienia pliku INI i włącza funkcję listy plików MRU.
CWinApp::OnContextHelp Obsługuje pomoc SHIFT+F1 w aplikacji.
CWinApp::OnFileNew Implementuje polecenie ID_FILE_NEW.
CWinApp::OnFileOpen Implementuje polecenie ID_FILE_OPEN.
CWinApp::OnFilePrintSetup Implementuje polecenie ID_FILE_PRINT_SETUP.
CWinApp::OnHelp Obsługuje pomoc F1 w aplikacji (przy użyciu bieżącego kontekstu).
CWinApp::OnHelpFinder Obsługuje polecenia ID_HELP_FINDER i ID_DEFAULT_HELP.
CWinApp::OnHelpIndex Obsługuje polecenie ID_HELP_INDEX i udostępnia domyślny temat Pomocy.
CWinApp::OnHelpUsing Obsługuje polecenie ID_HELP_USING.
CWinApp::RegisterShellFileTypes Rejestruje wszystkie typy dokumentów aplikacji w Menedżerze plików systemu Windows.
CWinApp::SetAppID Jawnie ustawia identyfikator modelu użytkownika aplikacji dla aplikacji. Ta metoda powinna być wywoływana przed przedstawieniem użytkownikowi dowolnego interfejsu użytkownika (najlepszym miejscem jest konstruktor aplikacji).
CWinApp::SetRegistryKey Powoduje, że ustawienia aplikacji są przechowywane w rejestrze zamiast . Pliki INI.
CWinApp::UnregisterShellFileTypes Wyrejestrowuje wszystkie typy dokumentów aplikacji za pomocą Menedżera plików systemu Windows.

Publiczne elementy członkowskie danych

Nazwa/nazwisko opis
CWinApp::m_bHelpMode Wskazuje, czy użytkownik jest w trybie kontekstowym Pomoc (zwykle wywoływany z SHIFT+F1).
CWinApp::m_eHelpType Określa typ pomocy używanej przez aplikację.
CWinApp::m_hInstance Identyfikuje bieżące wystąpienie aplikacji.
CWinApp::m_lpCmdLine Wskazuje ciąg zakończony o wartości null, który określa wiersz polecenia dla aplikacji.
CWinApp::m_nCmdShow Określa, jak okno ma być wyświetlane początkowo.
CWinApp::m_pActiveWnd Wskaźnik do głównego okna aplikacji kontenera, gdy serwer OLE jest aktywny.
CWinApp::m_pszAppID Identyfikator modelu użytkownika aplikacji.
CWinApp::m_pszAppName Określa nazwę aplikacji.
CWinApp::m_pszExeName Nazwa modułu aplikacji.
CWinApp::m_pszHelpFilePath Ścieżka do pliku Pomocy aplikacji.
CWinApp::m_pszProfileName Aplikacja . Nazwa pliku INI.
CWinApp::m_pszRegistryKey Służy do określania pełnego klucza rejestru do przechowywania ustawień profilu aplikacji.

Chronione składowe danych

Nazwa/nazwisko opis
CWinApp::m_dwRestartManagerSupportFlags Flagi określające zachowanie menedżera ponownego uruchamiania.
CWinApp::m_nAutosaveInterval Czas w milisekundach między autozapisami.
CWinApp::m_pDataRecoveryHandler Wskaźnik do programu obsługi odzyskiwania danych dla aplikacji.

Uwagi

Obiekt aplikacji udostępnia funkcje członkowskie do inicjowania aplikacji (i każdego jej wystąpienia) oraz uruchamiania aplikacji.

Każda aplikacja korzystająca z klas programu Microsoft Foundation może zawierać tylko jeden obiekt pochodzący z CWinAppklasy . Ten obiekt jest konstruowany, gdy inne obiekty globalne języka C++ są konstruowane i jest już dostępny, gdy system Windows wywołuje WinMain funkcję, która jest dostarczana przez bibliotekę klas programu Microsoft Foundation. Zadeklaruj obiekt pochodny CWinApp na poziomie globalnym.

Podczas tworzenia klasy aplikacji z CWinAppklasy programu zastąpić funkcję składową InitInstance w celu utworzenia głównego obiektu okna aplikacji.

Oprócz CWinApp funkcji składowych biblioteka klas programu Microsoft Foundation udostępnia następujące funkcje globalne umożliwiające dostęp do CWinApp obiektu i innych informacji globalnych:

  • AfxGetApp uzyskuje wskaźnik do CWinApp obiektu.

  • AfxGetInstanceHandle uzyskuje dojście do bieżącego wystąpienia aplikacji.

  • AfxGetResourceHandle uzyskuje dojście do zasobów aplikacji.

  • AfxGetAppName uzyskuje wskaźnik do ciągu zawierającego nazwę aplikacji. Alternatywnie, jeśli masz wskaźnik do CWinApp obiektu, użyj polecenia m_pszExeName , aby uzyskać nazwę aplikacji.

Zobacz CWinApp: Klasa aplikacji, aby uzyskać więcej informacji na CWinApp temat klasy, w tym omówienie następujących elementów:

  • CWinApp-pochodny kod napisany przez Kreatora aplikacji.

  • CWinAppRola użytkownika w sekwencji wykonywania aplikacji.

  • CWinAppDomyślne implementacje funkcji składowych.

  • CWinApp's key overridables.

Element m_hPrevInstance członkowski danych już nie istnieje. Aby określić, czy jest uruchomione inne wystąpienie aplikacji, użyj nazwanego mutexu. Jeśli otwarcie mutex zakończy się niepowodzeniem, nie ma żadnych innych wystąpień aplikacji.

Hierarchia dziedziczenia

Obiekt CObject

CCmdTarget

CWinThread

CWinApp

Wymagania

Nagłówek: afxwin.h

CWinApp::AddDocTemplate

Wywołaj tę funkcję składową, aby dodać szablon dokumentu do listy dostępnych szablonów dokumentów, które obsługuje aplikacja.

void AddDocTemplate(CDocTemplate* pTemplate);

Parametry

pTemplate
Wskaźnik do dodania CDocTemplate .

Uwagi

Przed wywołaniem metody RegisterShellFileTypes należy dodać wszystkie szablony dokumentów do aplikacji.

Przykład

// 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

Wywołaj tę funkcję składową, aby dodać nazwę lpszPathName do listy plików MRU.

virtual void AddToRecentFileList(LPCTSTR lpszPathName);

Parametry

lpszPathName
Ścieżka pliku.

Uwagi

Przed użyciem tej funkcji składowej należy wywołać funkcję składową LoadStdProfileSettings , aby załadować bieżącą listę plików MRU.

Struktura wywołuje tę funkcję składową po otwarciu pliku lub wykonuje polecenie Zapisz jako, aby zapisać plik o nowej nazwie.

Przykład

// 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

Wywoływana przez platformę, gdy aplikacja nieoczekiwanie kończy działanie.

virtual DWORD ApplicationRecoveryCallback(LPVOID lpvParam);

Parametry

lpvParam
[in] Zarezerwowane do użytku w przyszłości.

Wartość zwracana

0, jeśli ta metoda zakończy się pomyślnie; nonzero, jeśli wystąpi błąd.

Uwagi

Jeśli aplikacja obsługuje menedżera ponownego uruchamiania, platforma wywołuje tę funkcję, gdy aplikacja nieoczekiwanie zakończy działanie.

Domyślna implementacja ApplicationRecoveryCallback używa elementu , CDataRecoveryHandler aby zapisać listę aktualnie otwartych dokumentów w rejestrze. Ta metoda nie automatycznie zapisuje żadnych plików.

Aby dostosować zachowanie, przesłoń tę funkcję w pochodnej klasie CWinApp lub przekaż własną metodę odzyskiwania aplikacji jako parametr do CWinApp::RegisterWithRestartManager.

CWinApp::CloseAllDocuments

Wywołaj tę funkcję składową, aby zamknąć wszystkie otwarte dokumenty przed zakończeniem.

void CloseAllDocuments(BOOL bEndSession);

Parametry

bEndSession
Określa, czy sesja systemu Windows jest zakończona. Jest to prawda, jeśli sesja zostanie zakończona; w przeciwnym razie FAŁSZ.

Uwagi

Wywołaj metodę HideApplication przed wywołaniem metody CloseAllDocuments.

CWinApp::CreatePrinterDC

Wywołaj tę funkcję składową, aby utworzyć kontekst urządzenia drukarki (DC) z wybranej drukarki.

BOOL CreatePrinterDC(CDC& dc);

Parametry

Dc
Odwołanie do kontekstu urządzenia drukarki.

Wartość zwracana

Niezerowe, jeśli kontekst urządzenia drukarki został utworzony pomyślnie; w przeciwnym razie 0.

Uwagi

CreatePrinterDC Inicjuje kontekst urządzenia przekazywany przez odwołanie, aby można było go użyć do drukowania.

Jeśli funkcja zakończy się pomyślnie, po zakończeniu drukowania należy zniszczyć kontekst urządzenia. Możesz pozwolić, aby destruktor obiektu CDC zrobił to lub można to zrobić jawnie, wywołując cdC::D eleteDC.

CWinApp::CWinApp

CWinApp Tworzy obiekt i przekazuje nazwę lpszAppName do przechowywania jako nazwy aplikacji.

CWinApp(LPCTSTR lpszAppName = NULL);

Parametry

lpszAppName
Ciąg zakończony wartością null, który zawiera nazwę aplikacji używanej przez system Windows. Jeśli ten argument nie jest podany lub ma wartość NULL, CWinApp użyj ciągu zasobu AFX_IDS_APP_TITLE lub nazwy pliku wykonywalnego.

Uwagi

Należy utworzyć jeden obiekt globalny klasy pochodnej CWinApp. W aplikacji może znajdować się tylko jeden CWinApp obiekt. Konstruktor przechowuje wskaźnik do CWinApp obiektu, aby WinMain umożliwić wywołanie funkcji składowych obiektu w celu zainicjowania i uruchomienia aplikacji.

CWinApp::D elRegTree

Usuwa określony klucz rejestru i wszystkie jego podklucze.

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

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

Parametry

hParentKey
Obsługa klucza rejestru.

strKeyName
Nazwa klucza rejestru, który ma zostać usunięty.

pTM
Wskaźnik do obiektu CAtlTransactionManager.

Wartość zwracana

Jeśli funkcja powiedzie się, zwracana wartość jest ERROR_SUCCESS. Jeśli funkcja zakończy się niepowodzeniem, zwracana wartość jest kodem błędu niezerowym zdefiniowanym w pliku Winerror.h.

Uwagi

Wywołaj tę funkcję, aby usunąć określony klucz i jego podklucze.

CWinApp::D oMessageBox

Struktura wywołuje tę funkcję składową, aby zaimplementować pole komunikatu dla funkcji globalnej AfxMessageBox.

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

Parametry

lpszPrompt
Adres tekstowy w polu wiadomości.

nType
Styl pola komunikatu.

nIDPrompt
Indeks do ciągu kontekstu Pomocy.

Wartość zwracana

Zwraca te same wartości co AfxMessageBox.

Uwagi

Nie należy wywoływać tej funkcji składowej, aby otworzyć pole komunikatu; Zamiast tego użyj AfxMessageBox polecenia .

Zastąpij tę funkcję składową, aby dostosować przetwarzanie wywołań w całej AfxMessageBox aplikacji.

CWinApp::D oWaitCursor

Ta funkcja składowa jest wywoływana przez platformę w celu zaimplementowania CWaitCursor, CCmdTarget::BeginWaitCursor, CCmdTarget::EndWaitCursor i CCmdTarget::RestoreWaitCursor.

virtual void DoWaitCursor(int nCode);

Parametry

nCode
Jeśli ten parametr ma wartość 1, zostanie wyświetlony kursor oczekiwania. Jeśli wartość 0, kursor oczekiwania zostanie przywrócony bez zwiększania liczby odwołań. Jeśli -1, kursor oczekiwania kończy się.

Uwagi

Wartość domyślna implementuje kursor klepsydry. DoWaitCursor utrzymuje liczbę odwołań. Gdy jest dodatni, zostanie wyświetlony kursor klepsydry.

Chociaż zwykle nie można wywołać DoWaitCursor bezpośrednio, można zastąpić tę funkcję składową, aby zmienić kursor oczekiwania lub wykonać dodatkowe przetwarzanie podczas wyświetlania kursora oczekiwania.

Aby ułatwić, bardziej usprawniony sposób implementowania kursora oczekiwania, użyj polecenia CWaitCursor.

Przykład

// 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

Wymagany jest dodatek SP1 dla programu Visual Studio 2010.

Umożliwia obsługę D2D aplikacji. Wywołaj tę metodę przed zainicjowanym głównym oknem.

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

Parametry

d2dFactoryType
Model wątkowy fabryki D2D i tworzone przez nią zasoby.

writeFactoryType
Wartość określająca, czy obiekt fabryki zapisu będzie współużytkowany, czy izolowany

Wartość zwracana

Zwraca wartość TRUE, jeśli włączono obsługę D2D, FALSE — w przeciwnym razie

CWinApp::EnableHtmlHelp

Wywołaj tę funkcję składową z konstruktora klasy -pochodnej CWinApp, aby użyć elementu HTMLHelp w celu uzyskania pomocy aplikacji.

void EnableHtmlHelp();

Uwagi

CWinApp::EnableShellOtwórz

Wywołaj tę funkcję, zazwyczaj z InitInstance przesłonięcia, aby umożliwić użytkownikom aplikacji otwieranie plików danych po dwukrotnym kliknięciu plików z Poziomu Menedżera plików systemu Windows.

void EnableShellOpen();

Uwagi

Wywołaj funkcję składową w połączeniu RegisterShellFileTypes z tą funkcją lub podaj element . Plik REG z aplikacją do ręcznej rejestracji typów dokumentów.

Przykład

// 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

Włącza interakcję paska zadań.

BOOL EnableTaskbarInteraction(BOOL bEnable = TRUE);

Parametry

bEnable
Określa, czy interakcja z paskiem zadań systemu Windows 7 powinna być włączona (TRUE) lub wyłączona (FALSE).

Wartość zwracana

Zwraca wartość TRUE, jeśli można włączyć lub wyłączyć interakcję paska zadań.

Uwagi

Ta metoda musi być wywoływana przed utworzeniem okna głównego. W przeciwnym razie potwierdza i zwraca wartość FALSE.

CWinApp::ExitInstance

Wywoływana przez platformę z poziomu funkcji składowej Run w celu zakończenia tego wystąpienia aplikacji.

virtual int ExitInstance();

Wartość zwracana

Kod zakończenia aplikacji; Wartość 0 nie wskazuje błędów, a wartości większe niż 0 wskazują błąd. Ta wartość jest używana jako wartość zwracana z WinMain.

Uwagi

Nie należy wywoływać tej funkcji składowej z dowolnego miejsca, ale w ramach funkcji składowej Run .

Domyślna implementacja tej funkcji zapisuje opcje struktury w aplikacji . Plik INI. Zastąpij tę funkcję, aby wyczyścić ją po zakończeniu działania aplikacji.

Przykład

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

   DoCleanup();

   return CWinApp::ExitInstance();
}

CWinApp::GetApplicationRecoveryParameter

Pobiera parametr wejściowy dla metody odzyskiwania aplikacji.

virtual LPVOID GetApplicationRecoveryParameter();

Wartość zwracana

Domyślny parametr wejściowy dla metody odzyskiwania aplikacji.

Uwagi

Domyślne zachowanie tej funkcji zwraca wartość NULL.

Aby uzyskać więcej informacji, zobacz CWinApp::ApplicationRecoveryCallback.

CWinApp::GetApplicationRecoveryPingInterval

Zwraca czas oczekiwania menedżera ponownego uruchamiania na zwrócenie funkcji wywołania zwrotnego odzyskiwania.

virtual DWORD GetApplicationRecoveryPingInterval();

Wartość zwracana

Czas w milisekundach.

Uwagi

Gdy aplikacja zarejestrowana w menedżerze ponownego uruchamiania zostanie nieoczekiwanie zakończona, aplikacja próbuje zapisać otwarte dokumenty i wywołać funkcję wywołania zwrotnego odzyskiwania. Domyślną funkcją wywołania zwrotnego odzyskiwania jest CWinApp::ApplicationRecoveryCallback.

Czas oczekiwania platformy na zwrócenie funkcji wywołania zwrotnego odzyskiwania to interwał ping. Interwał ping można dostosować, przesłonięć CWinApp::GetApplicationRecoveryPingInterval lub podając wartość niestandardową na RegisterWithRestartManagerwartość .

CWinApp::GetApplicationRestartFlags

Zwraca flagi menedżera ponownego uruchamiania.

virtual DWORD GetApplicationRestartFlags();

Wartość zwracana

Flagi menedżera ponownego uruchamiania. Domyślna implementacja zwraca wartość 0.

Uwagi

Flagi menedżera ponownego uruchamiania nie mają wpływu na domyślną implementację. Są one udostępniane do użytku w przyszłości.

Flagi ustawiane podczas rejestrowania aplikacji za pomocą menedżera ponownego uruchamiania przy użyciu narzędzia CWinApp::RegisterWithRestartManager.

Możliwe wartości flag menedżera ponownego uruchamiania są następujące:

  • RESTART_NO_CRASH

  • RESTART_NO_HANG

  • RESTART_NO_PATCH

  • RESTART_NO_REBOOT

CWinApp::GetAppRegistryKey

Zwraca klucz HKEY_CURRENT_USER\"Software"\RegistryKey\ProfileName.

HKEY GetAppRegistryKey(CAtlTransactionManager* pTM = NULL);

Parametry

pTM
Wskaźnik do CAtlTransactionManager obiektu.

Wartość zwracana

Klucz aplikacji, jeśli funkcja powiedzie się; w przeciwnym razie wartość NULL.

Uwagi

CWinApp::GetDataRecoveryHandler

Pobiera procedurę obsługi odzyskiwania danych dla tego wystąpienia aplikacji.

virtual CDataRecoveryHandler *GetDataRecoveryHandler();

Wartość zwracana

Procedura obsługi odzyskiwania danych dla tego wystąpienia aplikacji.

Uwagi

Każda aplikacja korzystająca z menedżera ponownego uruchamiania musi mieć jedno wystąpienie klasy CDataRecoveryHandler. Ta klasa jest odpowiedzialna za monitorowanie otwartych dokumentów i automatyczne zapisywanie plików. Zachowanie elementu CDataRecoveryHandler zależy od konfiguracji menedżera ponownego uruchamiania. Aby uzyskać więcej informacji, zobacz Klasa CDataRecoveryHandler.

Ta metoda zwraca wartość NULL w systemach operacyjnych starszych niż Windows Vista. Menedżer ponownego uruchamiania nie jest obsługiwany w systemach operacyjnych starszych niż Windows Vista.

Jeśli aplikacja nie ma obecnie procedury obsługi odzyskiwania danych, ta metoda tworzy ją i zwraca do niej wskaźnik.

CWinApp::GetFirstDocTemplatePosition

Pobiera pozycję pierwszego szablonu dokumentu w aplikacji.

POSITION GetFirstDocTemplatePosition() const;

Wartość zwracana

Wartość POZYCJI, która może służyć do iteracji lub pobierania wskaźnika obiektu; Wartość NULL, jeśli lista jest pusta.

Uwagi

Użyj wartości POSITION zwróconej w wywołaniu metody GetNextDocTemplate, aby uzyskać pierwszy obiekt CDocTemplate.

CWinApp::GetHelpMode

Pobiera typ pomocy używanej przez aplikację.

AFX_HELP_TYPE GetHelpMode();

Wartość zwracana

Typ pomocy używany przez aplikację. Aby uzyskać więcej informacji, zobacz CWinApp::m_eHelpType .

CWinApp::GetNextDocTemplate

Pobiera szablon dokumentu zidentyfikowany przez wiersz polecenia, a następnie ustawia wiersze na wartość POSITION.

CDocTemplate* GetNextDocTemplate(POSITION& pos) const;

Parametry

pozytyw
Odwołanie do wartości POSITION zwróconej przez poprzednie wywołanie metody GetNextDocTemplate lub GetFirstDocTemplatePosition. Wartość zostanie zaktualizowana do następnego położenia przez to wywołanie.

Wartość zwracana

Wskaźnik do obiektu CDocTemplate .

Uwagi

Można użyć GetNextDocTemplate w pętli iteracji przesyłania dalej, jeśli ustanowisz pozycję początkową z wywołaniem metody GetFirstDocTemplatePosition.

Upewnij się, że wartość POZYCJI jest prawidłowa. Jeśli jest on nieprawidłowy, oznacza to, że wersja debugowania biblioteki klas programu Microsoft Foundation jest asercyjna.

Jeśli pobrany szablon dokumentu jest ostatni dostępny, nowa wartość wierszy jest ustawiona na wartość NULL.

CWinApp::GetPrinterDeviceDefaults

Wywołaj tę funkcję składową, aby przygotować kontekst urządzenia drukarki do drukowania.

BOOL GetPrinterDeviceDefaults(struct tagPDA* pPrintDlg);

Parametry

pPrintDlg
Wskaźnik do struktury PRINTDLG .

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Pobiera bieżące wartości domyślne drukarki z systemu Windows . Plik INI w razie potrzeby lub używa ostatniej konfiguracji drukarki ustawionej przez użytkownika w ustawieniach wydruku.

Przykład

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

Wywołaj tę funkcję składową, aby pobrać dane binarne z wpisu w określonej sekcji rejestru aplikacji lub . Plik INI.

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

Parametry

lpszSection
Wskazuje ciąg o wartości null, który określa sekcję zawierającą wpis.

lpszEntry
Wskazuje ciąg o wartości null, który zawiera wpis, którego wartość ma zostać pobrana.

ppData
Wskazuje wskaźnik, który otrzyma adres danych.

Liczba bajtów pBytes
Wskazuje interfejs UINT, który otrzyma rozmiar danych (w bajtach).

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Ta funkcja składowa nie uwzględnia wielkości liter, więc ciągi w parametrach lpszSection i lpszEntry mogą się różnić w przypadku.

Uwaga

GetProfileBinary przydziela bufor i zwraca jego adres w * ppData. Obiekt wywołujący jest odpowiedzialny za zwalnianie buforu przy użyciu polecenia delete [].

Ważne

Dane zwrócone przez tę funkcję nie muszą mieć wartości NULL zakończone, a obiekt wywołujący musi przeprowadzić walidację. Aby uzyskać więcej informacji, zobacz Unikanie przekroków buforu.

Przykład

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

Aby uzyskać dodatkowy przykład, zobacz CWinApp::WriteProfileBinary.

CWinApp::GetProfileInt

Wywołaj tę funkcję składową, aby pobrać wartość liczby całkowitej z wpisu w określonej sekcji rejestru aplikacji lub . Plik INI.

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

Parametry

lpszSection
Wskazuje ciąg o wartości null, który określa sekcję zawierającą wpis.

lpszEntry
Wskazuje ciąg o wartości null, który zawiera wpis, którego wartość ma zostać pobrana.

nDefault
Określa wartość domyślną, która ma być zwracana, jeśli platforma nie może odnaleźć wpisu.

Wartość zwracana

Wartość całkowita ciągu, która jest zgodna z określonym wpisem, jeśli funkcja zakończy się pomyślnie. Wartość zwracana jest wartością parametru nDefault , jeśli funkcja nie znajdzie wpisu. Wartość zwracana to 0, jeśli wartość odpowiadająca określonej pozycji nie jest liczbą całkowitą.

Ta funkcja składowa obsługuje notację szesnastkową dla wartości w elemencie . Plik INI. Po pobraniu podpisanej liczby całkowitej należy rzutować wartość na intwartość .

Uwagi

Ta funkcja składowa nie uwzględnia wielkości liter, więc ciągi w parametrach lpszSection i lpszEntry mogą się różnić w przypadku.

Ważne

Dane zwrócone przez tę funkcję nie muszą mieć wartości NULL zakończone, a obiekt wywołujący musi przeprowadzić walidację. Aby uzyskać więcej informacji, zobacz Unikanie przekroków buforu.

Przykład

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);

Aby uzyskać dodatkowy przykład, zobacz CWinApp::WriteProfileInt.

CWinApp::GetProfileString

Wywołaj tę funkcję składową, aby pobrać ciąg skojarzony z wpisem w określonej sekcji w rejestrze aplikacji lub . Plik INI.

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

Parametry

lpszSection
Wskazuje ciąg o wartości null, który określa sekcję zawierającą wpis.

lpszEntry
Wskazuje ciąg o wartości null, który zawiera wpis, którego ciąg ma zostać pobrany. Ta wartość nie może mieć wartości NULL.

lpszDefault
Wskazuje domyślną wartość ciągu dla danego wpisu, jeśli nie można odnaleźć wpisu w pliku inicjowania.

Wartość zwracana

Zwracana wartość to ciąg z aplikacji . Jeśli nie można odnaleźć ciągu, plik INI lub lpszDefault . Maksymalna długość ciągu obsługiwana przez platformę jest _MAX_PATH. Jeśli parametr lpszDefault ma wartość NULL, zwracana wartość jest pustym ciągiem.

Uwagi

Ważne

Dane zwrócone przez tę funkcję nie muszą mieć wartości NULL zakończone, a obiekt wywołujący musi przeprowadzić walidację. Aby uzyskać więcej informacji, zobacz Unikanie przekroków buforu.

Przykład

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);

W innym przykładzie zobacz przykład CWinApp::GetProfileInt.

CWinApp::GetSectionKey

Zwraca klucz dla HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\lpszSection.

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

Parametry

lpszSection
Nazwa klucza do uzyskania.

pTM
Wskaźnik do CAtlTransactionManager obiektu.

Wartość zwracana

Klucz sekcji, jeśli funkcja powiedzie się; w przeciwnym razie wartość NULL.

Uwagi

CWinApp::HideApplication

Wywołaj tę funkcję składową, aby ukryć aplikację przed zamknięciem otwartych dokumentów.

void HideApplication();

CWinApp::HtmlHelp

Wywołaj tę funkcję składową, aby wywołać aplikację HTMLHelp.

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

Parametry

dwData
Określa dodatkowe dane. Użyta wartość zależy od wartości parametru nCmd . 0x000F Wartości domyślne, co oznacza HH_HELP_CONTEXT.

nCmd
Określa typ żądanej pomocy. Aby uzyskać listę możliwych wartości i ich wpływ na parametr dwData , zobacz parametr uCommand opisany w funkcjach interfejsu API HtmlHelpW lub HtmlHelpA w zestawie Windows SDK.

Uwagi

Platforma wywołuje również tę funkcję, aby wywołać aplikację HTMLHelp.

Platforma automatycznie zamknie aplikację HTMLHelp po zakończeniu działania aplikacji.

CWinApp::InitInstance

System Windows umożliwia jednoczesne uruchamianie kilku kopii tego samego programu.

virtual BOOL InitInstance();

Wartość zwracana

Inicjalizacja niezerowa, jeśli inicjowanie zakończyło się pomyślnie; w przeciwnym razie 0.

Uwagi

Inicjowanie aplikacji jest koncepcyjnie podzielone na dwie sekcje: jednorazowa inicjowanie aplikacji, która jest wykonywana po raz pierwszy podczas uruchamiania programu, a inicjowanie wystąpienia uruchamiane za każdym razem, gdy kopia programu jest uruchamiana po raz pierwszy. Implementacja WinMain struktury wywołuje tę funkcję.

Zastąpij InitInstance , aby zainicjować każde nowe wystąpienie aplikacji działającej w systemie Windows. Zazwyczaj przesłonięć InitInstance , aby skonstruować obiekt okna głównego i ustawić CWinThread::m_pMainWnd element członkowski danych tak, aby wskazywał to okno. Aby uzyskać więcej informacji na temat zastępowania tej funkcji składowej, zobacz CWinApp: Klasa aplikacji.

Uwaga

Aplikacje MFC muszą być inicjowane jako jednowątkowy apartament (STA). Jeśli wywołasz metodę CoInitializeEx w InitInstance przesłonięciu, określ COINIT_APARTMENTTHREADED (zamiast COINIT_MULTITHREADED).

Przykład

// 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

Informuje, czy interakcja z paskiem zadań systemu Windows 7 jest włączona.

virtual BOOL IsTaskbarInteractionEnabled();

Wartość zwracana

Zwraca wartość TRUE, jeśli EnableTaskbarInteraction została wywołana, a system operacyjny to Windows 7 lub nowszy.

Uwagi

Interakcja z paskiem zadań oznacza, że aplikacja MDI wyświetla zawartość elementów podrzędnych MDI w osobnych miniaturach z kartami, które pojawiają się, gdy wskaźnik myszy znajduje się nad przyciskiem paska zadań aplikacji.

CWinApp::LoadCursor

Ładuje zasób kursora o nazwie lpszResourceName lub określony przez nIDResource z bieżącego pliku wykonywalnego.

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

Parametry

lpszResourceName
Wskazuje ciąg o wartości null, który zawiera nazwę zasobu kursora. Można użyć argumentu CString dla tego argumentu.

nIDResource
Identyfikator zasobu kursora. Aby uzyskać listę zasobów, zobacz LoadCursor w zestawie Windows SDK.

Wartość zwracana

Uchwyt do kursora, jeśli się powiedzie; w przeciwnym razie wartość NULL.

Uwagi

LoadCursor ładuje kursor do pamięci tylko wtedy, gdy nie został on wcześniej załadowany; w przeciwnym razie pobiera uchwyt istniejącego zasobu.

Użyj funkcji składowej LoadStandardCursor lub LoadOEMCursor , aby uzyskać dostęp do wstępnie zdefiniowanych kursorów systemu Windows.

Przykład

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

Ładuje zasób ikony o nazwie lpszResourceName lub określony przez nIDResource z pliku wykonywalnego.

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

Parametry

lpszResourceName
Wskazuje ciąg o wartości null, który zawiera nazwę zasobu ikony. Można również użyć argumentu CString dla tego argumentu.

nIDResource
Identyfikator zasobu ikony.

Wartość zwracana

Dojście do ikony, jeśli się powiedzie; w przeciwnym razie wartość NULL.

Uwagi

LoadIcon ładuje ikonę tylko wtedy, gdy nie została wcześniej załadowana; w przeciwnym razie pobiera uchwyt istniejącego zasobu.

Aby uzyskać dostęp do wstępnie zdefiniowanych ikon systemu Windows, możesz użyć funkcji składowej LoadStandardIcon lub LoadOEMIcon .

Uwaga

Ta funkcja składowa wywołuje funkcję Interfejs API Win32 LoadIcon, która może ładować tylko ikonę, której rozmiar jest zgodny z wartościami metryk SM_CXICON i SM_CYICON systemowych.

CWinApp::LoadOEMCursor

Ładuje wstępnie zdefiniowany zasób kursora systemu Windows określony przez nIDCursor.

HCURSOR LoadOEMCursor(UINT nIDCursor) const;

Parametry

nIDCursor
Identyfikator stałej manifestu OCR_ określający wstępnie zdefiniowany kursor systemu Windows. Musisz mieć #define OEMRESOURCE przed #include \<afxwin.h> uzyskaniem dostępu do stałych OCR_ w systemie WINDOWS.H.

Wartość zwracana

Uchwyt do kursora, jeśli się powiedzie; w przeciwnym razie wartość NULL.

Uwagi

Użyj funkcji składowej LoadOEMCursor lub LoadStandardCursor , aby uzyskać dostęp do wstępnie zdefiniowanych kursorów systemu Windows.

Przykład

// 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

Ładuje wstępnie zdefiniowany zasób ikony systemu Windows określony przez nIDIcon.

HICON LoadOEMIcon(UINT nIDIcon) const;

Parametry

nIDIcon
Identyfikator stałej manifestu OIC_ określający wstępnie zdefiniowaną ikonę systemu Windows. Musisz mieć #define OEMRESOURCE przed #include \<afxwin.h> uzyskaniem dostępu do stałych OIC_ w systemie WINDOWS.H.

Wartość zwracana

Dojście do ikony, jeśli się powiedzie; w przeciwnym razie wartość NULL.

Uwagi

Użyj funkcji członkowskiej LoadOEMIcon lub LoadStandardIcon , aby uzyskać dostęp do wstępnie zdefiniowanych ikon systemu Windows.

CWinApp::LoadStandardCursor

Ładuje wstępnie zdefiniowany zasób kursora systemu Windows, który określa lpszCursorName .

HCURSOR LoadStandardCursor(LPCTSTR lpszCursorName) const;

Parametry

lpszCursorName
Identyfikator stałej manifestu IDC_ określający wstępnie zdefiniowany kursor systemu Windows. Te identyfikatory są zdefiniowane w systemie WINDOWS.H. Na poniższej liście przedstawiono możliwe wstępnie zdefiniowane wartości i znaczenie dla lpszCursorName:

  • IDC_ARROW kursor ze strzałką w warstwie Standardowa

  • IDC_IBEAM kursor wstawiania tekstu w warstwie Standardowa

  • IDC_WAIT kursor klepsydry używany, gdy system Windows wykonuje czasochłonne zadanie

  • IDC_CROSS kursor krzyżowy do zaznaczenia

  • IDC_UPARROW Strzałka wskazująca prosto w górę

  • IDC_SIZE przestarzałe i nieobsługiwane; używanie IDC_SIZEALL

  • IDC_SIZEALL strzałkę z czterema punktami. Kursor, który ma być używany do zmiany rozmiaru okna.

  • IDC_ICON przestarzałe i nieobsługiwane. Użyj IDC_ARROW.

  • IDC_SIZENWSE strzałkę dwugłową z końcami w lewym górnym rogu i w prawym dolnym rogu

  • IDC_SIZENESW strzałkę dwugłową z końcami w prawym górnym rogu i w lewym dolnym rogu

  • IDC_SIZEWE Pozioma strzałka dwugłowa

  • IDC_SIZENS pionowa strzałka dwugłowa

Wartość zwracana

Uchwyt do kursora, jeśli się powiedzie; w przeciwnym razie wartość NULL.

Uwagi

Użyj funkcji składowej LoadStandardCursor lub LoadOEMCursor , aby uzyskać dostęp do wstępnie zdefiniowanych kursorów systemu Windows.

Przykład

HCURSOR hCursor;

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

CWinApp::LoadStandardIcon

Ładuje wstępnie zdefiniowany zasób ikony systemu Windows, który określa lpszIconName .

HICON LoadStandardIcon(LPCTSTR lpszIconName) const;

Parametry

lpszIconName
Identyfikator stałej manifestu, który określa wstępnie zdefiniowaną ikonę systemu Windows. Te identyfikatory są zdefiniowane w systemie WINDOWS.H. Aby uzyskać listę możliwych wstępnie zdefiniowanych wartości i ich opisów, zobacz parametr lpIconName w usłudze LoadIcon w zestawie SDK systemu Windows.

Wartość zwracana

Dojście do ikony, jeśli się powiedzie; w przeciwnym razie wartość NULL.

Uwagi

Użyj funkcji członkowskiej LoadStandardIcon lub LoadOEMIcon , aby uzyskać dostęp do wstępnie zdefiniowanych ikon systemu Windows.

CWinApp::LoadStdProfileSettings

Wywołaj tę funkcję składową z poziomu funkcji składowej InitInstance , aby włączyć i załadować listę ostatnio używanych plików (MRU) i ostatni stan podglądu.

void LoadStdProfileSettings(UINT nMaxMRU = _AFX_MRU_COUNT);

Parametry

nMaxMRU
Liczba ostatnio używanych plików do śledzenia.

Uwagi

Jeśli nMaxMRU ma wartość 0, żadna lista MRU nie zostanie zachowana.

CWinApp::m_bHelpMode

WARTOŚĆ TRUE, jeśli aplikacja jest w trybie kontekstowym Pomoc (wywoływana konwencjonalnie przy użyciu SHIFT + F1); w przeciwnym razie FAŁSZ.

BOOL m_bHelpMode;

Uwagi

W trybie kontekstowym Pomoc kursor staje się znakiem zapytania, a użytkownik może przenieść go na ekran. Sprawdź tę flagę, jeśli chcesz zaimplementować specjalną obsługę w trybie Pomocy. m_bHelpMode jest zmienną publiczną typu BOOL.

CWinApp::m_dwRestartManagerSupportFlags

Flagi określające zachowanie menedżera ponownego uruchamiania.

DWORD m_dwRestartManagerSupportFlags;

Uwagi

Aby włączyć menedżera ponownego uruchamiania, ustaw m_dwRestartManagerSupportFlags żądane zachowanie. W poniższej tabeli przedstawiono dostępne flagi.

Flaga opis
AFX_RESTART_MANAGER_SUPPORT_RESTART Aplikacja jest zarejestrowana przy użyciu narzędzia CWinApp::RegisterWithRestartManager. Menedżer ponownego uruchamiania jest odpowiedzialny za ponowne uruchomienie aplikacji, jeśli nieoczekiwanie zakończy działanie.
- AFX_RESTART_MANAGER_SUPPORT_RECOVERY Aplikacja jest zarejestrowana w menedżerze ponownego uruchamiania, a menedżer ponownego uruchamiania wywołuje funkcję wywołania zwrotnego odzyskiwania po ponownym uruchomieniu aplikacji. Domyślną funkcją wywołania zwrotnego odzyskiwania jest CWinApp::ApplicationRecoveryCallback.
- AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART Automatyczne zapisywanie jest włączone i menedżer ponownego uruchamiania automatycznie zapisuje wszystkie otwarte dokumenty po ponownym uruchomieniu aplikacji.
- AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL Automatyczne zapisywanie jest włączone, a menedżer ponownego uruchamiania automatycznie usuwa wszystkie otwarte dokumenty w regularnych odstępach czasu. Interwał jest definiowany przez CWinApp::m_nAutosaveInterval.
- AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES Menedżer ponownego uruchamiania otwiera wcześniej otwarte dokumenty po ponownym uruchomieniu aplikacji z nieoczekiwanego zakończenia. Klasa CDataRecoveryHandler obsługuje przechowywanie listy otwartych dokumentów i ich przywracanie.
- AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES Menedżer ponownego uruchamiania monituje użytkownika o przywrócenie automatycznie zapisanych plików po ponownym uruchomieniu aplikacji. Klasa CDataRecoveryHandler odpytuje użytkownika.
- AFX_RESTART_MANAGER_SUPPORT_NO_AUTOSAVE Związek AFX_RESTART_MANAGER_SUPPORT_RESTART, AFX_RESTART_MANAGER_SUPPORT_RECOVER i AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES.
- AFX_RESTART_MANAGER_SUPPORT_ALL_ASPECTS Związek AFX_RESTART_MANAGER_SUPPORT_NO_AUTOSAVE, AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART, AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL i AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES.
- AFX_RESTART_MANAGER_SUPPORT_RESTART_ASPECTS Związek AFX_RESTART_MANAGER_SUPPORT_RESTART, AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART, AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES i AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES.
- AFX_RESTART_MANAGER_SUPPORT_RECOVERY_ASPECTS OfAFX_RESTART_MANAGER_SUPPORT_RECOVERY unii, AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL, AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES i AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES.

CWinApp::m_eHelpType

Typ tego elementu członkowskiego danych jest wyliczonym typem AFX_HELP_TYPE, który jest zdefiniowany w CWinApp klasie.

AFX_HELP_TYPE m_eHelpType;

Uwagi

Wyliczenie AFX_HELP_TYPE jest definiowane w następujący sposób:

enum AFX_HELP_TYPE {
    afxWinHelp = 0,
    afxHTMLHelp = 1
    };
  • Aby ustawić pomoc aplikacji w pomocy HTML, wywołaj metodę SetHelpMode i określ wartość afxHTMLHelp.

  • Aby ustawić pomoc aplikacji dla winHelp, wywołaj SetHelpMode metodę i określ polecenie afxWinHelp.

CWinApp::m_hInstance

Odpowiada parametrowi hInstance przekazanemu przez system Windows do WinMain.

HINSTANCE m_hInstance;

Uwagi

Element m_hInstance członkowski danych jest dojściem do bieżącego wystąpienia aplikacji działającej w systemie Windows. Jest to zwracane przez funkcję globalną AfxGetInstanceHandle. m_hInstance jest zmienną publiczną typu HINSTANCE.

Przykład

// 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

Odpowiada parametrowi lpCmdLine przekazanemu przez system Windows do .WinMain

LPTSTR m_lpCmdLine;

Uwagi

Wskazuje ciąg zakończony o wartości null, który określa wiersz polecenia dla aplikacji. Użyj m_lpCmdLine polecenia , aby uzyskać dostęp do dowolnych argumentów wiersza polecenia, które użytkownik wprowadził podczas uruchamiania aplikacji. m_lpCmdLine jest zmienną publiczną typu LPTSTR.

Przykład

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

Czas w milisekundach między autozapisami.

int m_nAutosaveInterval;

Uwagi

Menedżer ponownego uruchamiania można skonfigurować tak, aby automatycznie otwierał dokumenty w ustalonych odstępach czasu. Jeśli aplikacja nie zapisuje automatycznie plików, ten parametr nie ma efektu.

CWinApp::m_nCmdShow

Odpowiada parametrowi nCmdShow przekazanemu przez system Windows do WinMain.

int m_nCmdShow;

Uwagi

Należy przekazać m_nCmdShow jako argument podczas wywoływania CWnd::ShowWindow dla głównego okna aplikacji. m_nCmdShow jest publiczną zmienną typu int.

Przykład

// 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

Użyj tego elementu członkowskiego danych, aby zapisać wskaźnik do głównego okna aplikacji kontenera OLE, która ma aktywowaną aplikację serwera OLE w miejscu.

Uwagi

Jeśli ten element członkowski danych ma wartość NULL, aplikacja nie jest aktywna.

Platforma ustawia tę zmienną składową, gdy okno ramki jest w miejscu aktywowane przez aplikację kontenera OLE.

CWinApp::m_pDataRecoveryHandler

Wskaźnik do programu obsługi odzyskiwania danych dla aplikacji.

CDataRecoveryHandler* m_pDataRecoveryHandler;

Uwagi

Procedura obsługi odzyskiwania danych aplikacji monitoruje otwarte dokumenty i automatycznie je przekazuje. Platforma używa programu obsługi odzyskiwania danych do przywracania automatycznie zapisanych plików, gdy aplikacja zostanie ponownie uruchomiona po nieoczekiwanym zakończeniu działania. Aby uzyskać więcej informacji, zobacz Klasa CDataRecoveryHandler.

CWinApp::m_pszAppName

Określa nazwę aplikacji.

LPCTSTR m_pszAppName;

Uwagi

Nazwa aplikacji może pochodzić z parametru przekazanego do konstruktora CWinApp lub, jeśli nie zostanie określona, do ciągu zasobu o identyfikatorze AFX_IDS_APP_TITLE. Jeśli nazwa aplikacji nie zostanie znaleziona w zasobie, pochodzi z pliku .EXE programu.

Zwracana przez funkcję globalną AfxGetAppName. m_pszAppName jest zmienną publiczną typu const char*.

Uwaga

Jeśli przypiszesz wartość do m_pszAppNamemetody , musi być ona dynamicznie przydzielana na stercie. Destruktor wywołuje metodę CWinApp free( ) z tym wskaźnikiem. Wiele osób chce użyć _tcsdupfunkcji biblioteki czasu wykonywania ( ), aby wykonać przydzielanie. Ponadto zwolnij pamięć skojarzona z bieżącym wskaźnikiem przed przypisaniem nowej wartości. Na przykład:

//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"));

Przykład

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

Zawiera nazwę pliku wykonywalnego aplikacji bez rozszerzenia.

LPCTSTR m_pszExeName;

Uwagi

W przeciwieństwie do m_pszAppName ta nazwa nie może zawierać wartości pustych. m_pszExeName jest zmienną publiczną typu const char*.

Uwaga

Jeśli przypiszesz wartość do m_pszExeNamemetody , musi być ona dynamicznie przydzielana na stercie. Destruktor wywołuje metodę CWinApp free( ) z tym wskaźnikiem. Wiele osób chce użyć _tcsdupfunkcji biblioteki czasu wykonywania ( ), aby wykonać przydzielanie. Ponadto zwolnij pamięć skojarzona z bieżącym wskaźnikiem przed przypisaniem nowej wartości. Na przykład:

//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

Zawiera ścieżkę do pliku Pomocy aplikacji.

LPCTSTR m_pszHelpFilePath;

Uwagi

Domyślnie struktura inicjuje m_pszHelpFilePath nazwę aplikacji za pomocą polecenia ". Dołączono HLP. Aby zmienić nazwę pliku pomocy, ustaw wartość m_pszHelpFilePath , aby wskazać ciąg zawierający pełną nazwę żądanego pliku pomocy. Wygodnym miejscem do wykonania jest funkcja InitInstance aplikacji. m_pszHelpFilePath jest zmienną publiczną typu const char*.

Uwaga

Jeśli przypiszesz wartość do m_pszHelpFilePathmetody , musi być ona dynamicznie przydzielana na stercie. Destruktor wywołuje metodę CWinApp free( ) z tym wskaźnikiem. Wiele osób chce użyć _tcsdupfunkcji biblioteki czasu wykonywania ( ), aby wykonać przydzielanie. Ponadto zwolnij pamięć skojarzona z bieżącym wskaźnikiem przed przypisaniem nowej wartości. Na przykład:

//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

Zawiera nazwę aplikacji . Plik INI.

LPCTSTR m_pszProfileName;

Uwagi

m_pszProfileName jest zmienną publiczną typu const char*.

Uwaga

Jeśli przypiszesz wartość do m_pszProfileNamemetody , musi być ona dynamicznie przydzielana na stercie. Destruktor wywołuje metodę CWinApp free( ) z tym wskaźnikiem. Wiele osób chce użyć _tcsdupfunkcji biblioteki czasu wykonywania ( ), aby wykonać przydzielanie. Ponadto zwolnij pamięć skojarzona z bieżącym wskaźnikiem przed przypisaniem nowej wartości. Na przykład:

//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

Służy do określania miejsca przechowywania ustawień profilu aplikacji w rejestrze lub pliku INI.

LPCTSTR m_pszRegistryKey;

Uwagi

Zwykle ten element członkowski danych jest traktowany jako tylko do odczytu.

  • Wartość jest przechowywana w kluczu rejestru. Nazwa ustawienia profilu aplikacji jest dołączana do następującego klucza rejestru: HKEY_CURRENT_USER/Software/LocalAppWizard-Generated/.

Jeśli przypiszesz wartość do m_pszRegistryKeymetody , musi być ona dynamicznie przydzielana na stercie. Destruktor wywołuje metodę CWinApp free( ) z tym wskaźnikiem. Wiele osób chce użyć _tcsdupfunkcji biblioteki czasu wykonywania ( ), aby wykonać przydzielanie. Ponadto zwolnij pamięć skojarzona z bieżącym wskaźnikiem przed przypisaniem nowej wartości. Na przykład:

//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

Identyfikator modelu użytkownika aplikacji.

LPCTSTR m_pszAppID;

Uwagi

CWinApp::OnContextHelp

Obsługuje pomoc SHIFT+F1 w aplikacji.

afx_msg void OnContextHelp();

Uwagi

Aby włączyć tę funkcję składową, musisz dodać instrukcję ON_COMMAND( ID_CONTEXT_HELP, OnContextHelp ) do CWinApp mapy komunikatów klasy, a także dodać wpis tabeli akceleratora, zazwyczaj SHIFT+F1.

OnContextHelp umieszcza aplikację w trybie Pomocy. Kursor zmienia się na strzałkę i znak zapytania, a użytkownik może następnie przenieść wskaźnik myszy i nacisnąć lewy przycisk myszy, aby wybrać okno dialogowe, okno, menu lub przycisk polecenia. Ta funkcja składowa pobiera kontekst Pomocy obiektu pod kursorem i wywołuje funkcję Windows WinHelp z tym kontekstem Pomocy.

CWinApp::OnDDECommand

Wywoływana przez platformę, gdy główne okno ramki odbiera komunikat wykonywania DDE.

virtual BOOL OnDDECommand(LPTSTR lpszCommand);

Parametry

lpszCommand
Wskazuje ciąg polecenia DDE odebrany przez aplikację.

Wartość zwracana

Nonzero, jeśli polecenie jest obsługiwane; w przeciwnym razie 0.

Uwagi

Domyślna implementacja sprawdza, czy polecenie jest żądaniem otwarcia dokumentu, a jeśli tak, otwiera określony dokument. Menedżer plików systemu Windows zwykle wysyła takie ciągi poleceń DDE, gdy użytkownik kliknie dwukrotnie plik danych. Zastąpij tę funkcję, aby obsługiwać inne polecenia wykonywania DDE, takie jak polecenie do wydrukowania.

Przykład

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

Implementuje polecenie ID_FILE_NEW.

afx_msg void OnFileNew();

Uwagi

Aby włączyć tę funkcję składową, musisz dodać instrukcję ON_COMMAND( ID_FILE_NEW, OnFileNew ) do CWinApp mapy komunikatów klasy. Jeśli ta funkcja jest włączona, obsługuje wykonywanie polecenia File New.

Aby uzyskać informacje na temat domyślnego zachowania i wskazówek dotyczących zastępowania tej funkcji składowej, zobacz Technical Note 22 (Uwaga techniczna 22 ).

Przykład

// 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

Implementuje polecenie ID_FILE_OPEN.

afx_msg void OnFileOpen();

Uwagi

Aby włączyć tę funkcję składową, musisz dodać instrukcję ON_COMMAND( ID_FILE_OPEN, OnFileOpen ) do CWinApp mapy komunikatów klasy. Jeśli ta funkcja jest włączona, obsługuje wykonywanie polecenia Otwórz plik.

Aby uzyskać informacje na temat zachowania domyślnego i wskazówek dotyczących zastępowania tej funkcji składowej, zobacz Technical Note 22 (Uwaga techniczna 22).

Przykład

// 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

Implementuje polecenie ID_FILE_PRINT_SETUP.

afx_msg void OnFilePrintSetup();

Uwagi

Aby włączyć tę funkcję składową, musisz dodać instrukcję ON_COMMAND( ID_FILE_PRINT_SETUP, OnFilePrintSetup ) do CWinApp mapy komunikatów klasy. Jeśli ta funkcja jest włączona, obsługuje wykonywanie polecenia File Print.

Aby uzyskać informacje na temat zachowania domyślnego i wskazówek dotyczących zastępowania tej funkcji składowej, zobacz Technical Note 22 (Uwaga techniczna 22).

Przykład

// 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

Obsługuje pomoc F1 w aplikacji (przy użyciu bieżącego kontekstu).

afx_msg void OnHelp();

Uwagi

Zazwyczaj dodaje się również wpis skrótu F1. Włączenie klucza F1 jest tylko konwencją, a nie wymaganiem.

Aby włączyć tę funkcję składową, musisz dodać instrukcję ON_COMMAND( ID_HELP, OnHelp ) do CWinApp mapy komunikatów klasy. Jeśli to ustawienie jest włączone, wywoływane przez platformę, gdy użytkownik naciska F1.

Domyślna implementacja tej funkcji obsługi komunikatów określa kontekst Pomocy odpowiadający bieżącemu oknie, okno dialogowe lub element menu, a następnie wywołuje WINHELP.EXE. Jeśli kontekst nie jest obecnie dostępny, funkcja używa kontekstu domyślnego.

Zastąpi tę funkcję składową, aby ustawić kontekst Pomocy na inny niż okno, okno dialogowe, element menu lub przycisk paska narzędzi, który obecnie ma fokus. Wywołaj metodę WinHelp za pomocą żądanego identyfikatora kontekstu Pomocy.

CWinApp::OnHelpFinder

Obsługuje polecenia ID_HELP_FINDER i ID_DEFAULT_HELP.

afx_msg void OnHelpFinder();

Uwagi

Aby włączyć tę funkcję składową, musisz dodać instrukcję ON_COMMAND( ID_HELP_FINDER, OnHelpFinder ) do CWinApp mapy komunikatów klasy. Jeśli ta funkcja jest włączona, platforma wywołuje tę funkcję obsługi komunikatów, gdy użytkownik aplikacji wybierze polecenie Help Finder do wywołania WinHelp przy użyciu standardowego tematu HELP_FINDER .

CWinApp::OnHelpIndex

Obsługuje polecenie ID_HELP_INDEX i udostępnia domyślny temat Pomocy.

afx_msg void OnHelpIndex();

Uwagi

Aby włączyć tę funkcję składową, musisz dodać instrukcję ON_COMMAND( ID_HELP_INDEX, OnHelpIndex ) do CWinApp mapy komunikatów klasy. Jeśli ta funkcja jest włączona, platforma wywołuje tę funkcję obsługi komunikatów, gdy użytkownik aplikacji wybierze polecenie Indeks Pomocy, które ma być wywoływane WinHelp przy użyciu standardowego tematu HELP_INDEX .

CWinApp::OnHelpUsing

Obsługuje polecenie ID_HELP_USING.

afx_msg void OnHelpUsing();

Uwagi

Aby włączyć tę funkcję składową, musisz dodać instrukcję ON_COMMAND( ID_HELP_USING, OnHelpUsing ) do CWinApp mapy komunikatów klasy. Platforma wywołuje tę funkcję obsługi komunikatów, gdy użytkownik aplikacji wybierze polecenie Pomoc przy użyciu, aby wywołać aplikację WinHelp przy użyciu standardowego tematu HELP_HELPONHELP .

CWinApp::OnIdle

Zastąpij tę funkcję składową, aby wykonywać przetwarzanie w czasie bezczynności.

virtual BOOL OnIdle(LONG lCount);

Parametry

lCount
Licznik zwiększa się za każdym razem OnIdle , gdy kolejka komunikatów aplikacji jest pusta. Ta liczba jest resetowany do 0 za każdym razem, gdy jest przetwarzany nowy komunikat. Możesz użyć parametru lCount , aby określić względny czas bezczynności aplikacji bez przetwarzania komunikatu.

Wartość zwracana

Bezzerowe odbieranie większego czasu przetwarzania bezczynności; 0, jeśli nie jest potrzebny czas bezczynności.

Uwagi

OnIdle jest wywoływana w domyślnej pętli komunikatów, gdy kolejka komunikatów aplikacji jest pusta. Użyj przesłonięcia, aby wywołać własne zadania obsługi bezczynności w tle.

OnIdle Powinna zwrócić wartość 0, aby wskazać, że nie jest wymagany czas bezczynności przetwarzania. Parametr lCount jest zwiększany za każdym razem OnIdle , gdy kolejka komunikatów jest pusta i resetuje do 0 przy każdym przetwarzaniu nowego komunikatu. Możesz wywołać różne procedury bezczynności na podstawie tej liczby.

Poniżej przedstawiono podsumowanie przetwarzania pętli bezczynności:

  1. Jeśli pętla komunikatów w bibliotece klas programu Microsoft Foundation sprawdza kolejkę komunikatów i nie znajduje oczekujących komunikatów, wywołuje OnIdle obiekt aplikacji i dostarcza wartość 0 jako argument lCount .

  2. OnIdle wykonuje pewne przetwarzanie i zwraca wartość niezerową, aby wskazać, że powinna zostać wywołana ponownie w celu dalszego przetwarzania.

  3. Pętla komunikatów ponownie sprawdza kolejkę komunikatów. Jeśli żadne komunikaty nie oczekują, wywołuje OnIdle ponownie, zwiększając argument lCount .

  4. OnIdle W końcu kończy przetwarzanie wszystkich bezczynnych zadań i zwraca wartość 0. Informuje to pętlę komunikatów o zatrzymaniu wywoływania OnIdle do momentu odebrania następnego komunikatu z kolejki komunikatów, w którym w momencie ponownego uruchomienia cyklu bezczynności z argumentem ustawionym na 0.

Nie wykonuj długich zadań, OnIdle ponieważ aplikacja nie może przetworzyć danych wejściowych użytkownika do momentu OnIdle powrotu.

Uwaga

Domyślna implementacja obiektów interfejsu OnIdle użytkownika poleceń aktualizacji, takich jak elementy menu i przyciski paska narzędzi, i wykonuje wewnętrzne czyszczenie struktury danych. W związku z tym, jeśli zastąpisz metodę OnIdle, musisz wywołać CWinApp::OnIdle metodę z wartością lCount w przesłoniętej wersji. Najpierw wywołaj wszystkie przetwarzanie bezczynności klasy bazowej (czyli do momentu, aż klasa OnIdle bazowa zwróci wartość 0). Jeśli musisz wykonać pracę przed ukończeniem przetwarzania klasy bazowej, zapoznaj się z implementacją klasy bazowej, aby wybrać odpowiedni element lCount , podczas którego należy wykonać pracę.

Jeśli nie chcesz OnIdle wywoływać za każdym razem, gdy komunikat zostanie pobrany z kolejki komunikatów, możesz zastąpić CWinThreadIsIdleMessage. Jeśli aplikacja ustawiła bardzo krótki czasomierz lub jeśli system wysyła komunikat WM_SYSTIMER, OnIdle będzie wywoływany wielokrotnie i obniża wydajność.

Przykład

W poniższych dwóch przykładach pokazano, jak używać polecenia OnIdle. Pierwszy przykład przetwarza dwa bezczynne zadania przy użyciu argumentu lCount , aby określić priorytety zadań. Pierwsze zadanie jest wysokim priorytetem i należy wykonać je zawsze, gdy jest to możliwe. Drugie zadanie jest mniej ważne i powinno być wykonywane tylko wtedy, gdy w danych wejściowych użytkownika występuje długa pauza. Zwróć uwagę na wywołanie do wersji klasy bazowej klasy OnIdle. Drugi przykład zarządza grupą bezczynnych zadań z różnymi priorytetami.

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

Struktura wywołuje tę metodę, aby otworzyć nazwany plik CDocument dla aplikacji.

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

Parametry

lpszFileName
[in] Nazwa pliku do otwarcia.

bAddToMRU
[in] Wartość TRUE wskazuje, że dokument jest jednym z najnowszych plików; FAŁSZ wskazuje, że dokument nie jest jednym z najnowszych plików.

Wartość zwracana

Wskaźnik na wartość , jeśli się powiedzie CDocument ; w przeciwnym razie wartość NULL.

Uwagi

Jeśli dokument o tej nazwie jest już otwarty, pierwsze okno ramki zawierające ten dokument uzyska fokus. Jeśli aplikacja obsługuje wiele szablonów dokumentów, platforma używa rozszerzenia nazwy pliku, aby znaleźć odpowiedni szablon dokumentu, aby spróbować załadować dokument. Jeśli to się powiedzie, szablon dokumentu tworzy okno ramki i widok dla dokumentu.

Przykład

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

Wywołaj tę funkcję składową, aby przeanalizować wiersz polecenia i wysłać parametry pojedynczo do CCommandLineInfo::P arseParam.

void ParseCommandLine(CCommandLineInfo& rCmdInfo);

Parametry

rCmdInfo
Odwołanie do obiektu CCommandLineInfo .

Uwagi

Po uruchomieniu nowego projektu MFC przy użyciu Kreatora aplikacji Kreator aplikacji utworzy lokalne wystąpienie CCommandLineInfoklasy , a następnie wywoła ProcessShellCommand funkcję ParseCommandLine i w funkcji składowej InitInstance . Wiersz polecenia jest zgodny z trasą opisaną poniżej:

  1. Po utworzeniu CCommandLineInfo w obiekcie InitInstanceobiekt jest przekazywany do ParseCommandLineobiektu .

  2. ParseCommandLine następnie wywołuje CCommandLineInfo::ParseParam wielokrotnie raz dla każdego parametru.

  3. ParseParamCCommandLineInfo wypełnia obiekt , który następnie jest przekazywany do polecenia ProcessShellCommand.

  4. ProcessShellCommand obsługuje argumenty wiersza polecenia i flagi.

Należy pamiętać, że możesz wywołać ParseCommandLine połączenie bezpośrednio w razie potrzeby.

Aby uzyskać opis flag wiersza polecenia, zobacz CCommandLineInfo::m_nShellCommand.

CWinApp::P reTranslateMessage

Zastąpij tę funkcję, aby filtrować komunikaty okien przed ich wysłaniem do funkcji Systemu Windows TranslateMessage i DispatchMessage Domyślna implementacja wykonuje translacja akceleratora, więc należy wywołać CWinApp::PreTranslateMessage funkcję składową w przesłoniętej wersji.

virtual BOOL PreTranslateMessage(MSG* pMsg);

Parametry

PMsg
Wskaźnik do struktury MSG , która zawiera komunikat do przetworzenia.

Wartość zwracana

Nonzero, jeśli komunikat został w pełni przetworzony i PreTranslateMessage nie powinien być przetwarzany dalej. Zero, jeśli komunikat powinien być przetwarzany w normalny sposób.

CWinApp::P rocessMessageFilter

Funkcja hook platformy wywołuje tę funkcję składową, aby filtrować i reagować na niektóre komunikaty systemu Windows.

virtual BOOL ProcessMessageFilter(
    int code,
    LPMSG lpMsg);

Parametry

kod
Określa kod zaczepienia. Ta funkcja składowa używa kodu do określenia sposobu przetwarzania lpMsg.

lpMsg
Wskaźnik do obcinania msgsystemu Windows.

Wartość zwracana

Niezero, jeśli komunikat jest przetwarzany; w przeciwnym razie 0.

Uwagi

Funkcja zaczepienia przetwarza zdarzenia przed wysłaniem ich do normalnego przetwarzania komunikatów aplikacji.

Jeśli zastąpisz tę zaawansowaną funkcję, pamiętaj, aby wywołać wersję klasy bazowej w celu zachowania przetwarzania zaczepienia platformy.

CWinApp::P rocessShellCommand

Ta funkcja składowa jest wywoływana przez initInstance , aby zaakceptować parametry przekazywane z CCommandLineInfo obiektu zidentyfikowanego przez rCmdInfo i wykonać wskazaną akcję.

BOOL ProcessShellCommand(CCommandLineInfo& rCmdInfo);

Parametry

rCmdInfo
Odwołanie do obiektu CCommandLineInfo .

Wartość zwracana

Nonzero, jeśli polecenie powłoki jest przetwarzane pomyślnie. Jeśli wartość 0, zwróć wartość FALSE z klasy InitInstance.

Uwagi

Po uruchomieniu nowego projektu MFC przy użyciu Kreatora aplikacji Kreator aplikacji utworzy lokalne wystąpienie CCommandLineInfo, a następnie wywoła ProcessShellCommand polecenie i ParseCommandLine w funkcji składowej InitInstance . Wiersz polecenia jest zgodny z trasą opisaną poniżej:

  1. Po utworzeniu CCommandLineInfo w obiekcie InitInstanceobiekt jest przekazywany do ParseCommandLineobiektu .

  2. ParseCommandLine następnie wywołuje polecenie CCommandLineInfo::P arseParam wielokrotnie, raz dla każdego parametru.

  3. ParseParamCCommandLineInfo wypełnia obiekt , który następnie jest przekazywany do ProcessShellCommandelementu .

  4. ProcessShellCommand obsługuje argumenty wiersza polecenia i flagi.

Składowe CCommandLineInfo danych obiektu, zidentyfikowane przez CCommandLineInfo::m_nShellCommand, mają następujący typ wyliczany, który jest zdefiniowany w CCommandLineInfo klasie.

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

Aby uzyskać krótki opis każdej z tych wartości, zobacz CCommandLineInfo::m_nShellCommand.

CWinApp::P rocessWndProcException

Struktura wywołuje tę funkcję składową za każdym razem, gdy program obsługi nie przechwyci wyjątku zgłaszanego w jednym z programów obsługi komunikatów lub poleceń aplikacji.

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

Parametry

e
Wskaźnik do nieuchwyconego wyjątku.

PMsg
Tructure MSG, który zawiera informacje o komunikacie systemu Windows, który spowodował zgłoszenie wyjątku przez strukturę.

Wartość zwracana

Wartość, która powinna zostać zwrócona do systemu Windows. Zwykle jest to 0L dla komunikatów systemu Windows, 1L ( TRUE) dla komunikatów poleceń.

Uwagi

Nie należy bezpośrednio wywoływać tej funkcji składowej.

Domyślna implementacja tej funkcji składowej powoduje utworzenie pola komunikatu. Jeśli nieuchwycony wyjątek pochodzi z menu, paska narzędzi lub błędu polecenia akceleratora, w polu komunikatu zostanie wyświetlony komunikat "Polecenie nie powiodło się"; w przeciwnym razie wyświetla komunikat "Wewnętrzny błąd aplikacji".

Zastąpi tę funkcję składową, aby zapewnić globalną obsługę wyjątków. Wywołaj funkcję podstawową tylko wtedy, gdy chcesz, aby okno komunikatu było wyświetlane.

CWinApp::Register

Wykonuje wszystkie zadania rejestracji, które nie są obsługiwane przez RegisterShellFileTypesprogram .

virtual BOOL Register();

Wartość zwracana

Nonzero na sukces; w przeciwnym razie 0.

Uwagi

Domyślna implementacja po prostu zwraca wartość TRUE. Zastąpij tę funkcję, aby udostępnić wszelkie dostosowane kroki rejestracji.

CWinApp::RegisterShellFileTypes

Wywołaj tę funkcję składową, aby zarejestrować wszystkie typy dokumentów aplikacji w Menedżerze plików systemu Windows.

void RegisterShellFileTypes(BOOL bCompat = FALSE);

Parametry

bCompat
[in] Wartość TRUE dodaje wpisy rejestracji dla poleceń powłoki Print and Print To, umożliwiając użytkownikowi drukowanie plików bezpośrednio z powłoki lub przeciągając plik do obiektu drukarki. Dodaje również klucz DefaultIcon. Domyślnie ten parametr ma wartość FALSE w celu zapewnienia zgodności z poprzednimi wersjami.

Uwagi

Dzięki temu użytkownik może otworzyć plik danych utworzony przez aplikację, klikając go dwukrotnie w Menedżerze plików. Wywołaj metodę RegisterShellFileTypes po wywołaniu metody AddDocTemplate dla każdego szablonu dokumentów w aplikacji. Wywołaj również funkcję EnableShellOpen member podczas wywoływania elementu RegisterShellFileTypes.

RegisterShellFileTypes iteruje za pomocą listy obiektów CDocTemplate , które aplikacja obsługuje, i, dla każdego szablonu dokumentu, dodaje wpisy do bazy danych rejestracji, którą system Windows obsługuje dla skojarzeń plików. Menedżer plików używa tych wpisów, aby otworzyć plik danych, gdy użytkownik kliknie go dwukrotnie. Eliminuje to konieczność wysłania . Plik REG z aplikacją.

Uwaga

RegisterShellFileTypes Działa tylko wtedy, gdy użytkownik uruchamia program z uprawnieniami administratora. Jeśli program nie ma uprawnień administratora, nie może zmienić kluczy rejestru.

Jeśli baza danych rejestracji skojarzy już rozszerzenie nazwy pliku z innym typem pliku, nie zostanie utworzone żadne nowe skojarzenie. Zobacz klasę CDocTemplate , aby uzyskać format ciągów niezbędnych do zarejestrowania tych informacji.

CWinApp::RegisterWithRestartManager

Rejestruje aplikację za pomocą menedżera ponownego uruchamiania.

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);

Parametry

bRegisterRecoveryCallback
[in] Wartość TRUE wskazuje, że to wystąpienie aplikacji używa funkcji wywołania zwrotnego odzyskiwania; FAŁSZ wskazuje, że nie. Platforma wywołuje funkcję wywołania zwrotnego odzyskiwania, gdy aplikacja nieoczekiwanie kończy działanie. Aby uzyskać więcej informacji, zobacz CWinApp::ApplicationRecoveryCallback.

strRestartIdentifier
[in] Unikatowy ciąg identyfikujący to wystąpienie menedżera ponownego uruchamiania. Identyfikator menedżera ponownego uruchamiania jest unikatowy dla każdego wystąpienia aplikacji.

pwzCommandLineArgs
[in] Ciąg zawierający wszelkie dodatkowe argumenty z wiersza polecenia.

dwRestartFlags
[in] Opcjonalne flagi menedżera ponownego uruchamiania. Aby uzyskać więcej informacji, zobacz sekcję: Uwagi.

pRecoveryCallback
[in] Funkcja wywołania zwrotnego odzyskiwania. Ta funkcja musi przyjmować parametr LPVOID jako dane wejściowe i zwracać DWORD. Domyślna funkcja wywołania zwrotnego odzyskiwania to CWinApp::ApplicationRecoveryCallback.

lpvParam
[in] Parametr wejściowy funkcji wywołania zwrotnego odzyskiwania. Aby uzyskać więcej informacji, zobacz CWinApp::ApplicationRecoveryCallback.

dwPingInterval
[in] Czas oczekiwania menedżera ponownego uruchamiania na powrót funkcji wywołania zwrotnego odzyskiwania. Ten parametr jest wyrażony w milisekundach.

dwCallbackFlags
[in] Flagi przekazywane do funkcji wywołania zwrotnego odzyskiwania. Zarezerwowane do użytku w przyszłości.

Wartość zwracana

S_OK, jeśli metoda zakończy się pomyślnie; w przeciwnym razie kod błędu.

Uwagi

Jeśli aplikacja używa domyślnej implementacji MFC na potrzeby automatycznego zapisania plików, należy użyć prostej wersji programu RegisterWithRestartManager. Użyj złożonej wersji programu RegisterWithRestartManager , jeśli chcesz dostosować zachowanie autozapisu aplikacji.

Jeśli wywołasz tę metodę z pustym ciągiem dla parametru strRestartIdentifier, RegisterWithRestartManager utworzy unikatowy ciąg identyfikatora dla tego wystąpienia menedżera ponownego uruchamiania.

Gdy aplikacja zostanie nieoczekiwanie zakończona, menedżer ponownego uruchomienia ponownie uruchomi aplikację z wiersza polecenia i udostępni unikatowy identyfikator ponownego uruchomienia jako opcjonalny argument. W tym scenariuszu struktura wywołuje RegisterWithRestartManager dwa razy. Pierwsze wywołanie pochodzi z klasy CWinApp::InitInstance z pustym ciągiem identyfikatora ciągu. Następnie metoda CWinApp::P rocessShellCommand wywołuje RegisterWithRestartManager unikatowy identyfikator ponownego uruchomienia.

Po zarejestrowaniu aplikacji za pomocą menedżera ponownego uruchamiania menedżer ponownego uruchamiania monitoruje aplikację. Jeśli aplikacja nieoczekiwanie zakończy działanie, menedżer ponownego uruchamiania wywołuje funkcję wywołania zwrotnego odzyskiwania podczas procesu zamykania. Menedżer ponownego uruchamiania czeka dwPingInterval na odpowiedź z funkcji wywołania zwrotnego odzyskiwania. Jeśli funkcja wywołania zwrotnego odzyskiwania nie odpowiada w tym czasie, aplikacja kończy działanie bez wykonywania funkcji wywołania zwrotnego odzyskiwania.

Domyślnie pliki dwRestartFlags nie są obsługiwane, ale są udostępniane do użytku w przyszłości. Możliwe wartości dwRestartFlags są następujące:

  • RESTART_NO_CRASH

  • RESTART_NO_HANG

  • RESTART_NO_PATCH

  • RESTART_NO_REBOOT

CWinApp::ReopenPreviousFilesAtRestart

Określa, czy menedżer ponownego uruchamiania ponownie otwiera pliki, które były otwierane, gdy aplikacja zakończyła się nieoczekiwanie.

virtual BOOL ReopenPreviousFilesAtRestart() const;

Wartość zwracana

Wartość TRUE wskazuje, że menedżer ponownego uruchamiania ponownie otwiera wcześniej otwarte pliki; FAŁSZ wskazuje, że menedżer ponownego uruchamiania nie.

CWinApp::RestartInstance

Obsługuje ponowne uruchomienie aplikacji zainicjowane przez menedżera ponownego uruchamiania.

virtual BOOL CWinApp::RestartInstance();

Wartość zwracana

WARTOŚĆ TRUE, jeśli program obsługi odzyskiwania danych otwiera wcześniej otwarte dokumenty; FAŁSZ, jeśli program obsługi odzyskiwania danych zawiera błąd lub jeśli nie ma wcześniej otwartych dokumentów.

Uwagi

Gdy menedżer ponownego uruchamiania ponownie uruchomi aplikację, platforma wywołuje tę metodę. Ta metoda pobiera program obsługi odzyskiwania danych i przywraca automatycznie zapisanych plików. Ta metoda wywołuje metodę CDataRecoveryHandler::RestoreAutosavedDocuments , aby określić, czy użytkownik chce przywrócić automatycznie zapisanych plików.

Ta metoda zwraca wartość FALSE, jeśli program CDataRecoveryHandler określa, że nie było otwartych dokumentów. Jeśli nie było otwartych dokumentów, aplikacja jest uruchamiana zwykle.

CWinApp::RestoreAutosavedFilesAtRestart

Określa, czy menedżer ponownego uruchamiania przywraca automatycznie zapisane pliki po ponownym uruchomieniu aplikacji.

virtual BOOL RestoreAutosavedFilesAtRestart() const;

Wartość zwracana

Wartość TRUE wskazuje, że menedżer ponownego uruchamiania przywraca automatycznie zapisanych plików; FAŁSZ wskazuje, że menedżer ponownego uruchamiania nie.

CWinApp::Run

Udostępnia domyślną pętlę komunikatów.

virtual int Run();

Wartość zwracana

int Wartość zwracana przez WinMainelement .

Uwagi

Run pobiera i wysyła komunikaty systemu Windows, dopóki aplikacja nie otrzyma komunikatu WM_QUIT. Jeśli kolejka komunikatów aplikacji nie zawiera obecnie żadnych komunikatów, wywołuje metodę OnIdle, Run aby wykonać przetwarzanie w czasie bezczynności. Komunikaty przychodzące przechodzą do funkcji składowej PreTranslateMessage w celu specjalnego przetwarzania, a następnie do funkcji TranslateMessage systemu Windows w celu standardowego tłumaczenia klawiatury. Na DispatchMessage koniec wywoływana jest funkcja systemu Windows.

Run jest rzadko zastępowana, ale można ją zastąpić, aby zapewnić specjalne zachowanie.

CWinApp::RunAutomated

Wywołaj tę funkcję, aby określić, czy jest obecna opcja " /Automation" lub " -Automation", która wskazuje, czy aplikacja serwera została uruchomiona przez aplikację kliencką.

BOOL RunAutomated();

Wartość zwracana

Niezero, jeśli opcja została znaleziona; w przeciwnym razie 0.

Uwagi

Jeśli istnieje, opcja zostanie usunięta z wiersza polecenia. Aby uzyskać więcej informacji na temat automatyzacji OLE, zobacz artykuł Serwery automatyzacji.

CWinApp::RunEmbedded

Wywołaj tę funkcję, aby określić, czy opcja " /Embedding" lub " -Embedding" jest obecna, co wskazuje, czy aplikacja serwera została uruchomiona przez aplikację kliencką.

BOOL RunEmbedded();

Wartość zwracana

Niezero, jeśli opcja została znaleziona; w przeciwnym razie 0.

Uwagi

Jeśli istnieje, opcja zostanie usunięta z wiersza polecenia. Aby uzyskać więcej informacji na temat osadzania, zobacz artykuł Serwery: implementowanie serwera.

CWinApp::SaveAllModified

Wywoływana przez platformę, aby zapisać wszystkie dokumenty, gdy główne okno ramki aplikacji ma zostać zamknięte lub za pośrednictwem komunikatu WM_QUERYENDSESSION.

virtual BOOL SaveAllModified();

Wartość zwracana

Nonzero, jeśli bezpieczne, aby zakończyć aplikację; 0, jeśli nie jest bezpieczne, aby zakończyć działanie aplikacji.

Uwagi

Domyślna implementacja tej funkcji składowej wywołuje funkcję składową CDocument::SaveModified dla wszystkich zmodyfikowanych dokumentów w aplikacji.

CWinApp::SelectPrinter

Wywołaj tę funkcję składową, aby wybrać określoną drukarkę i zwolnić drukarkę, która została wcześniej wybrana w oknie dialogowym Drukowanie.

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

Parametry

hDevNames
Uchwyt do obcinania DEVNAMES, który identyfikuje sterowniki, urządzenie i nazwy portów wyjściowych określonej drukarki.

hDevMode
Uchwyt do struktury DEVMODE , która określa informacje o inicjowaniu urządzenia i środowisku drukarki.

bFreeOld
Zwalnia wcześniej wybraną drukarkę.

Uwagi

Jeśli zarówno hDevMode, jak i hDevNames mają wartość NULL, SelectPrinter użyj bieżącej drukarki domyślnej.

CWinApp::SetHelpMode

Ustawia typ pomocy aplikacji.

void SetHelpMode(AFX_HELP_TYPE eHelpType);

Parametry

eHelpType
Określa typ pomocy do użycia. Aby uzyskać więcej informacji, zobacz CWinApp::m_eHelpType .

Uwagi

Ustawia typ Pomocy aplikacji.

Aby ustawić typ Pomocy aplikacji na HTMLHelp, możesz wywołać metodę EnableHTMLHelp. Po wywołaniu EnableHTMLHelpmetody aplikacja musi używać metody HTMLHelp jako aplikacji pomocy. Jeśli chcesz zmienić użycie narzędzia WinHelp, możesz wywołać SetHelpMode i ustawić wartość eHelpType na afxWinHelp.

CWinApp::SetRegistryKey

Powoduje przechowywanie ustawień aplikacji w rejestrze zamiast plików INI.

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

Parametry

lpszRegistryKey
Wskaźnik do ciągu zawierającego nazwę klucza.

nIDRegistryKey
Identyfikator zasobu ciągu zawierającego nazwę klucza rejestru.

Uwagi

Ta funkcja ustawia m_pszRegistryKey, która jest następnie używana przez GetProfileIntfunkcje CWinAppskładowe , GetProfileString, WriteProfileInti WriteProfileString . Jeśli ta funkcja została wywołana, lista ostatnio używanych plików (MRU) jest również przechowywana w rejestrze. Klucz rejestru jest zwykle nazwą firmy. Jest on przechowywany w kluczu następującej formy: HKEY_CURRENT_USER\Software\<company name\<application name>>\section name\value name>>\<<value.

CWinApp::SupportsApplicationRecovery

Określa, czy menedżer ponownego uruchamiania odzyskuje nieoczekiwanie aplikację, która zakończyła działanie.

virtual BOOL SupportsApplicationRecovery() const;

Wartość zwracana

Wartość TRUE wskazuje, że menedżer ponownego uruchamiania odzyskuje aplikację; FAŁSZ wskazuje, że menedżer ponownego uruchamiania nie.

CWinApp::SupportsAutosaveAtInterval

Określa, czy menedżer ponownego uruchamiania automatycznie otwiera dokumenty w regularnych odstępach czasu.

virtual BOOL SupportsAutosaveAtInterval() const;

Wartość zwracana

Wartość TRUE wskazuje, że menedżer ponownego uruchamiania automatycznie otwiera dokumenty; FAŁSZ wskazuje, że menedżer ponownego uruchamiania nie.

CWinApp::SupportsAutosaveAtRestart

Określa, czy menedżer ponownego uruchamiania automatycznie zapisuje otwarte dokumenty po ponownym uruchomieniu aplikacji.

virtual BOOL SupportsAutosaveAtRestart() const;

Wartość zwracana

Wartość TRUE wskazuje, że menedżer ponownego uruchamiania automatycznie otwiera dokumenty po ponownym uruchomieniu aplikacji; FAŁSZ wskazuje, że menedżer ponownego uruchamiania nie.

CWinApp::SupportsRestartManager

Określa, czy aplikacja obsługuje menedżera ponownego uruchamiania.

virtual BOOL SupportsRestartManager() const;

Wartość zwracana

Wartość TRUE wskazuje, że aplikacja obsługuje menedżera ponownego uruchamiania; FAŁSZ wskazuje, że aplikacja nie.

CWinApp::Wyrejestrowywanie

Wyrejestrowuje wszystkie pliki zarejestrowane przez obiekt aplikacji.

virtual BOOL Unregister();

Wartość zwracana

Nonzero na sukces; w przeciwnym razie 0.

Uwagi

Funkcja Unregister cofa rejestrację wykonywaną przez obiekt aplikacji i funkcję Register . Zwykle obie funkcje są wywoływane niejawnie przez MFC i dlatego nie będą wyświetlane w kodzie.

Zastąpij tę funkcję, aby wykonać niestandardowe kroki wyrejestrowania.

CWinApp::UnregisterShellFileTypes

Wywołaj tę funkcję składową, aby wyrejestrować wszystkie typy dokumentów aplikacji za pomocą Menedżera plików systemu Windows.

void UnregisterShellFileTypes();

CWinApp::WinHelp

Wywołaj tę funkcję składową, aby wywołać aplikację WinHelp.

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

Parametry

dwData
Określa dodatkowe dane. Użyta wartość zależy od wartości parametru nCmd .

nCmd
Określa typ żądanej pomocy. Aby uzyskać listę możliwych wartości i ich wpływ na parametr dwData , zobacz funkcję WinHelp systemu Windows.

Uwagi

Platforma wywołuje również tę funkcję, aby wywołać aplikację WinHelp.

Platforma automatycznie zamknie aplikację WinHelp po zakończeniu działania aplikacji.

Przykład

// 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

Wywołaj tę funkcję składową, aby zapisać dane binarne w określonej sekcji rejestru aplikacji lub . Plik INI.

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

Parametry

lpszSection
Wskazuje ciąg o wartości null, który określa sekcję zawierającą wpis. Jeśli sekcja nie istnieje, zostanie utworzona. Nazwa sekcji jest niezależna od wielkości liter; ciąg może być dowolną kombinacją wielkich i małych liter.

lpszEntry
Wskazuje ciąg o wartości null, który zawiera wpis, do którego ma zostać zapisana wartość. Jeśli wpis nie istnieje w określonej sekcji, zostanie utworzony.

pData
Wskazuje dane do zapisania.

nBajty
Zawiera liczbę bajtów do zapisania.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Przykład

W tym przykładzie użyto CWinApp* pApp = AfxGetApp(); metody uzyskiwania w klasie CWinApp ilustrujących sposób WriteProfileBinary i GetProfileBinary można jej użyć z dowolnej funkcji w aplikacji MFC.

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

Inny przykład można znaleźć w przykładzie CWinApp::GetProfileBinary.

CWinApp::WriteProfileInt

Wywołaj tę funkcję składową, aby zapisać określoną wartość w określonej sekcji rejestru aplikacji lub . Plik INI.

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

Parametry

lpszSection
Wskazuje ciąg o wartości null, który określa sekcję zawierającą wpis. Jeśli sekcja nie istnieje, zostanie utworzona. Nazwa sekcji jest niezależna od wielkości liter; ciąg może być dowolną kombinacją wielkich i małych liter.

lpszEntry
Wskazuje ciąg o wartości null, który zawiera wpis, do którego ma zostać zapisana wartość. Jeśli wpis nie istnieje w określonej sekcji, zostanie utworzony.

nValue
Zawiera wartość do zapisania.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Przykład

W tym przykładzie użyto CWinApp* pApp = AfxGetApp(); metody uzyskiwania w klasie CWinApp ilustrujących sposób, który GetProfileStringWriteProfileStringWriteProfileInt, , i GetProfileInt może być używany z dowolnej funkcji w aplikacji MFC.

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);

W innym przykładzie zobacz przykład CWinApp::GetProfileInt.

CWinApp::WriteProfileString

Wywołaj tę funkcję składową, aby zapisać określony ciąg w określonej sekcji rejestru aplikacji lub . Plik INI.

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

Parametry

lpszSection
Wskazuje ciąg o wartości null, który określa sekcję zawierającą wpis. Jeśli sekcja nie istnieje, zostanie utworzona. Nazwa sekcji jest niezależna od wielkości liter; ciąg może być dowolną kombinacją wielkich i małych liter.

lpszEntry
Wskazuje ciąg o wartości null, który zawiera wpis, do którego ma zostać zapisana wartość. Jeśli wpis nie istnieje w określonej sekcji, zostanie utworzony. Jeśli ten parametr ma wartość NULL, sekcja określona przez polecenie lpszSection zostanie usunięta.

lpszValue
Wskazuje ciąg do zapisania. Jeśli ten parametr ma wartość NULL, wpis określony przez parametr lpszEntry zostanie usunięty.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Przykład

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);

W innym przykładzie zobacz przykład CWinApp::GetProfileInt.

CWinApp::SetAppID

Jawnie ustawia identyfikator modelu użytkownika aplikacji dla aplikacji. Ta metoda powinna być wywoływana przed przedstawieniem użytkownikowi dowolnego interfejsu użytkownika (najlepszym miejscem jest konstruktor aplikacji).

void SetAppID(LPCTSTR lpcszAppID);

Parametry

lpcszAppID
Określa identyfikator modelu użytkownika aplikacji.

Uwagi

Zobacz też

Klasa CWinThread
Wykres hierarchii
Instrukcje: dodawanie obsługi menedżera ponownego uruchamiania