CWinApp クラス

Windows のアプリケーション オブジェクトを派生させるための基底クラスです。

構文

class CWinApp : public CWinThread

メンバー

パブリック コンストラクター

名前 説明
CWinApp::CWinApp CWinApp オブジェクトを構築します。

パブリック メソッド

名前 説明
CWinApp::AddDocTemplate 使用可能なドキュメント テンプレートのアプリケーションの一覧にドキュメント テンプレートを追加します。
CWinApp::AddToRecentFileList 最近使用した (MRU) ファイルの一覧にファイル名を追加します。
CWinApp::ApplicationRecoveryCallback アプリケーションが予期せず終了したときにフレームワークによって呼び出されます。
CWinApp::CloseAllDocuments 開いているすべてのドキュメントを閉じます。
CWinApp::CreatePrinterDC プリンター デバイス コンテキストを作成します。
CWinApp::D elRegTree 指定したキーとそのすべてのサブキーを削除します。
CWinApp::D oMessageBox アプリケーションの AfxMessageBox を実装します。
CWinApp::D oWaitCursor 待機カーソルのオンとオフを切り替えます。
CWinApp::EnableD2DSupport アプリケーション D2D のサポートを有効にします。 このメソッドは、メイン ウィンドウが初期化される前に呼び出します。
CWinApp::EnableHtmlHelp WinHelp ではなく、アプリケーションの HTMLHelp を実装します。
CWinApp::EnableTaskbarInteraction タスク バーの操作を有効にします。
CWinApp::ExitInstance アプリケーションが終了したときにクリーンにオーバーライドします。
CWinApp::GetApplicationRecoveryParameter アプリケーションの回復方法の入力パラメーターを取得します。
CWinApp::GetApplicationRecoveryPingInterval 回復コールバック関数が返されるまで再起動マネージャーが待機する時間の長さを返します。
CWinApp::GetApplicationRestartFlags 再起動マネージャーのフラグを返します。
CWinApp::GetAppRegistryKey HKEY_CURRENT_UStandard Edition R\"Software"\RegistryKey\ProfileName のキーを返します。
CWinApp::GetDataRecoveryHandler アプリケーションのこのインスタンスのデータ復旧ハンドラーを取得します。
CWinApp::GetFirstDocTemplatePosition 最初のドキュメント テンプレートの位置を取得します。
CWinApp::GetHelpMode アプリケーションで使用されるヘルプの種類を取得します。
CWinApp::GetNextDocTemplate ドキュメント テンプレートの位置を取得します。 再帰的に使用できます。
CWinApp::GetPrinterDeviceDefaults プリンター デバイスの既定値を取得します。
CWinApp::GetProfileBinary アプリケーションのエントリからバイナリ データを取得します。INI ファイル。
CWinApp::GetProfileInt アプリケーションのエントリから整数を取得します。INI ファイル。
CWinApp::GetProfileString アプリケーションのエントリから文字列を取得します。INI ファイル。
CWinApp::GetSectionKey HKEY_CURRENT_UStandard Edition R\"Software"\RegistryKey\AppName\lpszSection のキーを返します。
CWinApp::HideApplication すべてのドキュメントを閉じる前に、アプリケーションを非表示にします。
CWinApp::HtmlHelp Windows 関数を呼び出します HTMLHelp
CWinApp::InitInstance ウィンドウ オブジェクトの作成など、Windows インスタンスの初期化を実行する場合はオーバーライドします。
CWinApp::IsTaskbarInteractionEnabled Windows 7 タスク バーの操作が有効になっているかどうかを示します。
CWinApp::LoadCursor カーソル リソースを読み込みます。
CWinApp::LoadIcon アイコン リソースを読み込みます。
CWinApp::LoadOEMCursor OCR_定数が WINDOWS.H で指定する Windows OEM 定義済みカーソルを読み込みます。
CWinApp::LoadOEMIcon OIC_定数が WINDOWS.H で指定する Windows OEM 定義済みアイコンを読み込みます。
CWinApp::LoadStandardCursor IDC_定数が WINDOWS.H で指定する Windows 定義済みカーソルを読み込みます。
CWinApp::LoadStandardIcon windows.H でIDI_定数が指定する Windows 定義済みのアイコンを読み込みます。
CWinApp::OnDDECommand 動的データ交換 (DDE) 実行コマンドに応答してフレームワークによって呼び出されます。
CWinApp::OnIdle オーバーライドして、アプリケーション固有のアイドル時間処理を実行します。
CWinApp::OpenDocumentFile ファイルからドキュメントを開くためにフレームワークによって呼び出されます。
CWinApp::P arseCommandLine コマンド ラインの個々のパラメーターとフラグを解析します。
CWinApp::P reTranslateMessage メッセージが Windows 関数 TranslateMessage および DispatchMessage にディスパッチされる前にフィルター処理します。
CWinApp::P rocessMessageFilter アプリケーションに到達する前に、特定のメッセージをインターセプトします。
CWinApp::P rocessShellCommand コマンド ライン引数とフラグを処理します。
CWinApp::P rocessWndProcException アプリケーションのメッセージおよびコマンド ハンドラーによってスローされたすべてのハンドルされない例外をインターセプトします。
CWinApp::Register カスタマイズされた登録を実行します。
CWinApp::RegisterWithRestartManager アプリケーションを再起動マネージャーに登録します。
CWinApp::ReopenPreviousFilesAtRestart アプリケーションが予期せず終了したときに開いていたファイルを再起動マネージャーが再度開くかどうかを判断します。
CWinApp::RestartInstance 再起動マネージャーによって開始されたアプリケーションの再起動を処理します。
CWinApp::RestoreAutosavedFilesAtRestart アプリケーションの再起動時に、再起動マネージャーが自動保存されたファイルを復元するかどうかを決定します。
CWinApp::Run 既定のメッセージ ループを実行します。 オーバーライドしてメッセージ ループをカスタマイズします。
CWinApp::RunAutomated /Automation オプションのアプリケーションのコマンド ラインをテストします。 互換性のために残されています。 代わりに、ParseCommandLine を呼び出した後に CCommandLineInfo::m_bRunAutomated の値を使用します。
CWinApp::RunEmbedded /Embedding オプションに対してアプリケーションの コマンド ラインを テストします。 互換性のために残されています。 代わりに、ParseCommandLine を呼び出した後に CCommandLineInfo::m_bRunEmbedded の値を使用します。
CWinApp::SaveAllModified 変更されたすべてのドキュメントを保存するようにユーザーに求めます。
CWinApp::SelectPrinter ユーザーが印刷ダイアログ ボックスで指定したプリンターを選択します。
CWinApp::SetHelpMode アプリケーションで使用されるヘルプの種類を設定および初期化します。
CWinApp::SupportsApplicationRecovery 再起動マネージャーが予期せず終了したアプリケーションを回復するかどうかを判断します。
CWinApp::SupportsAutosaveAtInterval 再起動マネージャーが開いているドキュメントを一定の間隔で自動保存するかどうかを決定します。
CWinApp::SupportsAutosaveAtRestart アプリケーションの再起動時に、再起動マネージャーが開いているドキュメントを自動保存するかどうかを決定します。
CWinApp::SupportsRestartManager アプリケーションが再起動マネージャーをサポートしているかどうかを判断します。
CWinApp::Unregister オブジェクトによって登録されることがわかっているすべての登録を CWinApp 解除します。
CWinApp::WinHelp Windows 関数を呼び出します WinHelp
CWinApp::WriteProfileBinary アプリケーションのエントリにバイナリ データを書き込みます。INI ファイル。
CWinApp::WriteProfileInt アプリケーションのエントリに整数を書き込みます。INI ファイル。
CWinApp::WriteProfileString アプリケーションのエントリに文字列を書き込みます。INI ファイル。

保護メソッド

名前 説明
CWinApp::EnableShellOpen ユーザーが Windows ファイル マネージャーからデータ ファイルを開くできるようにします。
CWinApp::LoadStdProfile設定 標準を読み込みます。INI ファイルの設定と MRU ファイルリスト機能を有効にします。
CWinApp::OnContextHelp アプリケーション内で Shift + F1 ヘルプを処理します。
CWinApp::OnFileNew ID_FILE_NEW コマンドを実装します。
CWinApp::OnFileOpen ID_FILE_OPEN コマンドを実装します。
CWinApp::OnFilePrintSetup ID_FILE_PRINT_Standard Edition TUP コマンドを実装します。
CWinApp::OnHelp アプリケーション内で F1 ヘルプを (現在のコンテキストを使って) 処理します。
CWinApp::OnHelpFinder ID_HELP_FINDERコマンドとID_DEFAULT_HELP コマンドを処理します。
CWinApp::OnHelpIndex ID_HELP_INDEX コマンドを処理し、既定のヘルプ トピックを提供します。
CWinApp::OnHelpUsing ID_HELP_USING コマンドを処理します。
CWinApp::RegisterShellFileTypes すべてのアプリケーションのドキュメントの種類を Windows ファイル マネージャーに登録します。
CWinApp::SetAppID アプリケーションのアプリケーション ユーザー モデル ID を明示的に設定します。 このメソッドは、ユーザー インターフェイスがユーザーに表示される前に呼び出す必要があります (最適な場所はアプリケーション コンストラクターです)。
CWinApp::SetRegistryKey アプリケーション設定をレジストリに保存します。INI ファイル。
CWinApp::UnregisterShellFileTypes Windows ファイル マネージャーを使用して、アプリケーションのすべてのドキュメントの種類の登録を解除します。

パブリック データ メンバー

名前 説明
CWinApp::m_bHelpMode ユーザーがヘルプ コンテキスト モード (通常は Shift + F1 で呼び出される) かどうかを示します。
CWinApp::m_eHelpType アプリケーションで使用されるヘルプの種類を指定します。
CWinApp::m_hInstance アプリケーションの現在のインスタンスを識別します。
CWinApp::m_lpCmdLine アプリケーションのコマンド ラインを指定する null で終わる文字列を指します。
CWinApp::m_nCmdShow ウィンドウを最初に表示する方法を指定します。
CWinApp::m_pActiveWnd OLE サーバーがインプレース アクティブな場合にコンテナー アプリケーションのメイン ウィンドウへのポインター。
CWinApp::m_pszAppID アプリケーション ユーザー モデル ID。
CWinApp::m_pszAppName アプリケーションの名前を指定します。
CWinApp::m_pszExeName アプリケーションのモジュール名。
CWinApp::m_pszHelpFilePath アプリケーションのヘルプ ファイルへのパス。
CWinApp::m_pszProfileName アプリケーションの .INI ファイル名。
CWinApp::m_pszRegistryKey アプリケーション プロファイル設定を格納するための完全なレジストリ キーを決定するために使用されます。

プロテクト データ メンバー

名前 説明
CWinApp::m_dwRestartManagerSupportFlags 再起動マネージャーの動作を決定するフラグ。
CWinApp::m_nAutosaveInterval 自動保存の間の時間 (ミリ秒単位)。
CWinApp::m_pDataRecoveryHandler アプリケーションのデータ復旧ハンドラーへのポインター。

解説

アプリケーション オブジェクトは、アプリケーション (およびその各インスタンス) を初期化し、アプリケーションを実行するためのメンバー関数を提供します。

Microsoft Foundation クラスを使用する各アプリケーションには、派生 CWinAppオブジェクトを 1 つだけ含めることができます。 このオブジェクトは、他の C++ グローバル オブジェクトが構築されている場合に構築され、Windows が関数を WinMain 呼び出すときに既に使用できます。この関数は、Microsoft Foundation クラス ライブラリによって提供されます。 派生 CWinApp オブジェクトをグローバル レベルで宣言します。

アプリケーション クラスCWinAppを派生させる場合は、InitInstance メンバー関数をオーバーライドして、アプリケーションのメイン ウィンドウ オブジェクトを作成します。

メンバー関数に CWinApp 加えて、Microsoft Foundation クラス ライブラリには、オブジェクトやその他のグローバル情報にアクセス CWinApp するための次のグローバル関数が用意されています。

  • AfxGetApp オブジェクトへのポインターを CWinApp 取得します。

  • AfxGetInstanceHandle 現在のアプリケーション インスタンスへのハンドルを取得します。

  • AfxGetResourceHandle アプリケーションのリソースへのハンドルを取得します。

  • AfxGetAppName アプリケーションの名前を含む文字列へのポインターを取得します。 または、オブジェクトへの CWinApp ポインターがある場合は、アプリケーションの名前を取得するために使用 m_pszExeName します。

次の概要など、クラスの詳細については、CWinApp: Application クラスに関CWinAppするページを参照してください。

  • CWinApp- アプリケーション ウィザードによって記述された派生コード。

  • CWinAppアプリケーションの実行シーケンスにおける 's ロール。

  • CWinApp'の既定のメンバー関数の実装。

  • CWinApp's key overridables.

データ メンバーが m_hPrevInstance 存在しなくなりました。 アプリケーションの別のインスタンスが実行されているかどうかを確認するには、名前付きミューテックスを使用します。 ミューテックスを開く際に失敗した場合、アプリケーションの他のインスタンスは実行されません。

継承階層

CObject

CCmdTarget

Cwinthread

CWinApp

必要条件

ヘッダー: afxwin.h

CWinApp::AddDocTemplate

このメンバー関数を呼び出して、アプリケーションがメインする使用可能なドキュメント テンプレートの一覧にドキュメント テンプレートを追加します。

void AddDocTemplate(CDocTemplate* pTemplate);

パラメーター

pTemplate
追加する CDocTemplate ポインター。

解説

RegisterShellFileTypes を呼び出す 前に、すべてのドキュメント テンプレートをアプリケーションに追加する必要があります。

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

CWinApp::AddToRecentFileList

このメンバー関数を呼び出して、lpszPathName を MRU ファイル リストに追加します。

virtual void AddToRecentFileList(LPCTSTR lpszPathName);

パラメーター

lpszPathName
ファイルのパス。

解説

このメンバー関数を使用する前に、LoadStdProfile設定 メンバー関数を呼び出して、現在の MRU ファイル リストを読み込む必要があります。

フレームワークは、ファイルを開くか、[名前を付けて保存] コマンドを実行して新しい名前でファイルを保存するときに、このメンバー関数を呼び出します。

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

CWinApp::ApplicationRecoveryCallback

アプリケーションが予期せず終了したときにフレームワークによって呼び出されます。

virtual DWORD ApplicationRecoveryCallback(LPVOID lpvParam);

パラメーター

lpvParam
[入力] 将来の使用のために予約されています。

戻り値

このメソッドが成功した場合は 0。エラーが発生した場合は 0 以外。

解説

アプリケーションで再起動マネージャーがサポートされている場合、アプリケーションが予期せず終了したときにフレームワークによってこの関数が呼び出されます。

既定の ApplicationRecoveryCallback 実装では、 CDataRecoveryHandler 現在開いているドキュメントの一覧をレジストリに保存するために使用されます。 このメソッドは、ファイルを自動保存しません。

動作をカスタマイズするには、派生 CWinApp クラスでこの関数をオーバーライドするか、独自のアプリケーション回復メソッドをパラメーターとして CWinApp::RegisterWithRestartManager渡します。

CWinApp::CloseAllDocuments

終了する前に開いているすべてのドキュメントを閉じるには、このメンバー関数を呼び出します。

void CloseAllDocuments(BOOL bEndSession);

パラメーター

bEndSession
Windows セッションを終了するかどうかを指定します。 セッションが終了する場合は TRUE です。それ以外の場合は FAL Standard Edition。

解説

呼び出す 前に HideApplication を 呼び出します CloseAllDocuments

CWinApp::CreatePrinterDC

このメンバー関数を呼び出して、選択したプリンターからプリンター デバイス コンテキスト (DC) を作成します。

BOOL CreatePrinterDC(CDC& dc);

パラメーター

dc
プリンター デバイス コンテキストへの参照。

戻り値

プリンター デバイス コンテキストが正常に作成された場合は 0 以外。それ以外の場合は 0。

解説

CreatePrinterDC は、参照渡しで渡すデバイス コンテキストを初期化するため、これを使用して印刷できます。

関数が成功した場合、印刷が完了したら、デバイス コンテキストを破棄する必要があります。 CDC オブジェクトのデストラクターに実行させるか、CDC::D eleteDC を呼び出して明示的に行うことができます。

CWinApp::CWinApp

オブジェクトをCWinApp構築し、アプリケーション名として格納する lpszAppName を渡します。

CWinApp(LPCTSTR lpszAppName = NULL);

パラメーター

lpszAppName
Windows で使用されるアプリケーション名を含む null で終わる文字列。 この引数が指定されていないか NULL の場合は、 CWinApp リソース文字列AFX_IDS_APP_TITLEまたは実行可能ファイルのファイル名を使用します。

解説

派生クラスのグローバル オブジェクトを CWinApp1 つ作成する必要があります。 アプリケーションに含めることができるオブジェクトは 1 つだけ CWinApp です。 コンストラクターは、オブジェクトのメンバー関数を CWinApp 呼び出してアプリケーションを初期化および実行できるように WinMain 、オブジェクトへのポインターを格納します。

CWinApp::D elRegTree

特定のレジストリ キーとそのすべてのサブキーを削除します。

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

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

パラメーター

hParentKey
レジストリ キーへのハンドル。

strKeyName
削除するレジストリ キーの名前。

pTM
CAtlTransactionManager オブジェクトへのポインター。

戻り値

関数が成功した場合、戻り値は ERROR_SUCCESS です。 関数が失敗した場合、戻り値は Winerror.h で定義されている 0 以外のエラー コードです。

解説

指定したキーとそのサブキーを削除するには、この関数を呼び出します。

CWinApp::D oMessageBox

フレームワークは、このメンバー関数を呼び出して、グローバル関数 AfxMessageBox のメッセージ ボックスを実装します

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

パラメーター

lpszPrompt
メッセージ ボックス内のテキストのアドレス。

nType
メッセージ ボックス のスタイル

nIDPrompt
ヘルプ コンテキスト文字列のインデックス。

戻り値

と同じ値 AfxMessageBoxを返します。

解説

このメンバー関数を呼び出してメッセージ ボックスを開かないでください。代わりに使用 AfxMessageBox してください。

このメンバー関数をオーバーライドして、アプリケーション全体の呼び出し処理を AfxMessageBox カスタマイズします。

CWinApp::D oWaitCursor

このメンバー関数は、CWaitCursor、CCmdTarget::BeginWaitCursor、CCmdTarget::EndWaitCursor、および CCmdTarget::RestoreWaitCursor を実装するためにフレームワークによって呼び出されます

virtual void DoWaitCursor(int nCode);

パラメーター

nCode
このパラメーターが 1 の場合は、待機カーソルが表示されます。 0 の場合、待機カーソルは参照カウントをインクリメントせずに復元されます。 -1 の場合、待機カーソルは終了します。

解説

既定では、砂時計カーソルが実装されます。 DoWaitCursorメイン参照カウントが含まれます。 正の場合は、砂時計カーソルが表示されます。

通常は直接呼び出 DoWaitCursor しませんが、このメンバー関数をオーバーライドして待機カーソルを変更したり、待機カーソルが表示されている間に追加処理を実行したりできます。

待機カーソルを実装するより簡単で合理化された方法を使用するには、次を使用 CWaitCursorします。

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

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

   // do some lengthy processing
   Sleep(1000);

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

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

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

   // do some lengthy processing

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

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

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

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

CWinApp::EnableD2DSupport

Visual Studio 2010 SP1 が必要です。

アプリケーション D2D のサポートを有効にします。 このメソッドは、メイン ウィンドウが初期化される前に呼び出します。

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

パラメーター

d2dFactoryType
D2D ファクトリのスレッド モデルと、それが作成するリソース。

writeFactoryType
書き込みファクトリ オブジェクトを共有するか分離するかを指定する値

戻り値

D2D サポートが有効な場合は TRUE、FAL Standard Edition を返します。それ以外の場合は返します。

CWinApp::EnableHtmlHelp

アプリケーションのヘルプに HTMLHelp を使用するには、-derived クラスの CWinAppコンストラクター内からこのメンバー関数を呼び出します。

void EnableHtmlHelp();

解説

CWinApp::EnableShellOpen

この関数は、通常はオーバーライドから InitInstance 呼び出して、アプリケーションのユーザーが Windows ファイル マネージャー内からファイルをダブルクリックしたときにデータ ファイルを開くことができるようにします。

void EnableShellOpen();

解説

この関数と RegisterShellFileTypes 組み合わせてメンバー関数を呼び出すか、または .ドキュメントの種類を手動で登録するためのアプリケーションを含む REG ファイル。

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

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

CWinApp::EnableTaskbarInteraction

タスク バーの操作を有効にします。

BOOL EnableTaskbarInteraction(BOOL bEnable = TRUE);

パラメーター

bEnable
Windows 7 タスク バーとの対話を有効にする (TRUE)、または無効にする (FAL Standard Edition) かどうかを指定します。

戻り値

タスク バーの操作を有効または無効にできる場合は TRUE を返します。

解説

このメソッドは、メイン ウィンドウを作成する前に呼び出す必要があります。それ以外の場合は、FAL Standard Edition をアサートして返します。

CWinApp::ExitInstance

アプリケーションのこのインスタンスを終了するために、 Run メンバー関数内からフレームワークによって呼び出されます。

virtual int ExitInstance();

戻り値

アプリケーションの終了コード。0 はエラーがないことを示し、0 より大きい値はエラーを示します。 この値は、WinMain

解説

メンバー関数内の任意の場所からこのメンバー関数を Run 呼び出さないでください。

この関数の既定の実装では、フレームワーク オプションがアプリケーションに書き込まれます。INI ファイル。 アプリケーションが終了したときにクリーンするには、この関数をオーバーライドします。

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

   DoCleanup();

   return CWinApp::ExitInstance();
}

CWinApp::GetApplicationRecoveryParameter

アプリケーションの回復方法の入力パラメーターを取得します。

virtual LPVOID GetApplicationRecoveryParameter();

戻り値

アプリケーションの回復方法の既定の入力パラメーター。

解説

この関数の既定の動作では NULL が返されます。

詳細については、「CWinApp::ApplicationRecoveryCallback」を参照してください

CWinApp::GetApplicationRecoveryPingInterval

回復コールバック関数が返されるまで再起動マネージャーが待機する時間の長さを返します。

virtual DWORD GetApplicationRecoveryPingInterval();

戻り値

ミリ秒単位の時間の長さ。

解説

再起動マネージャーに登録されているアプリケーションが予期せず終了すると、アプリケーションは開いているドキュメントを保存し、回復コールバック関数を呼び出そうとします。 既定の回復コールバック関数は CWinApp::ApplicationRecoveryCallback です。

フレームワークが復旧コールバック関数が返されるまで待機する時間の長さは、ping 間隔です。 ping 間隔をカスタマイズするには、オーバーライド CWinApp::GetApplicationRecoveryPingInterval するか、カスタム値 RegisterWithRestartManagerを指定します。

CWinApp::GetApplicationRestartFlags

再起動マネージャーのフラグを返します。

virtual DWORD GetApplicationRestartFlags();

戻り値

再起動マネージャーのフラグ。 既定の実装では、0 が返されます。

解説

再起動マネージャーのフラグは、既定の実装には影響しません。 これらは将来の使用のために提供されます。

CWinApp::RegisterWithRestartManager を使用して 、アプリケーションを再起動マネージャーに登録するときにフラグを設定します

再起動マネージャー フラグに使用できる値は次のとおりです。

  • RESTART_NO_CRASH

  • RESTART_NO_HANG

  • RESTART_NO_PATCH

  • RESTART_NO_REBOOT

CWinApp::GetAppRegistryKey

HKEY_CURRENT_UStandard Edition R\"Software"\RegistryKey\ProfileName のキーを返します。

HKEY GetAppRegistryKey(CAtlTransactionManager* pTM = NULL);

パラメーター

pTM
CAtlTransactionManager オブジェクトを指すポインター。

戻り値

関数が成功した場合のアプリケーション キー。それ以外の場合は NULL。

解説

CWinApp::GetDataRecoveryHandler

アプリケーションのこのインスタンスのデータ復旧ハンドラーを取得します。

virtual CDataRecoveryHandler *GetDataRecoveryHandler();

戻り値

アプリケーションのこのインスタンスのデータ復旧ハンドラー。

解説

再起動マネージャーを使用する各アプリケーションには、CDataRecoveryHandler クラスインスタンスが 1 つ必要です。 このクラスは、開いているドキュメントと自動保存ファイルの監視を担当します。 動作は、 CDataRecoveryHandler 再起動マネージャーの構成によって異なります。 詳細については、「CDataRecoveryHandler クラス」を参照してください

このメソッドは、Windows Vista より前のオペレーティング システムで NULL を返します。 再起動マネージャーは、Windows Vista より前のオペレーティング システムではサポートされていません。

アプリケーションに現在データ回復ハンドラーがない場合、このメソッドはデータ復旧ハンドラーを作成し、そのハンドラーへのポインターを返します。

CWinApp::GetFirstDocTemplatePosition

アプリケーション内の最初のドキュメント テンプレートの位置を取得します。

POSITION GetFirstDocTemplatePosition() const;

戻り値

反復またはオブジェクト ポインターの取得に使用できる POSITION 値。リストが空の場合は NULL。

解説

GetNextDocTemplate の呼び出しで返される POSITION 値を 使用して、 最初 の CDocTemplate オブジェクトを取得します。

CWinApp::GetHelpMode

アプリケーションで使用されるヘルプの種類を取得します。

AFX_HELP_TYPE GetHelpMode();

戻り値

アプリケーションで使用されるヘルプの種類。 詳細については、 CWinApp::m_eHelpType を参照してください。

CWinApp::GetNextDocTemplate

pos で識別されるドキュメント テンプレートを取得し、pos を POSITION 値に設定します。

CDocTemplate* GetNextDocTemplate(POSITION& pos) const;

パラメーター

pos
GetFirstDocTemplatePosition への以前の呼び出しによって返される POSITION 値へのGetNextDocTemplate参照。 値は、この呼び出しによって次の位置に更新されます。

戻り値

CDocTemplate オブジェクトへのポインター。

解説

への呼び出しGetFirstDocTemplatePositionで初期位置を確立する場合は、前方反復ループで使用GetNextDocTemplateできます。

POSITION 値が有効であることを確認する必要があります。 無効な場合は、Microsoft Foundation クラス ライブラリのデバッグ バージョンがアサートされます。

取得したドキュメント テンプレートが最後に使用可能な場合、pos新しい値は NULL に設定されます。

CWinApp::GetPrinterDeviceDefaults

このメンバー関数を呼び出して、印刷用のプリンター デバイス コンテキストを準備します。

BOOL GetPrinterDeviceDefaults(struct tagPDA* pPrintDlg);

パラメーター

pPrintDlg
PRINTDLG 構造体へのポインター。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

Windows から現在のプリンターの既定値を取得します。必要に応じて INI ファイルを作成するか、[印刷設定] でユーザーが設定した最後のプリンター構成を使用します。

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

CWinApp::GetProfileBinary

このメンバー関数を呼び出して、アプリケーションのレジストリまたは .INI ファイル。

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

パラメーター

lpszSection
エントリがあるセクションを指定する NULL で終わる文字列へのポインター。

lpszEntry
値を取得するエントリを指定する NULL で終わる文字列へのポインター。

Ppdata
データのアドレスを受け取るポインターを指します。

pBytes
データのサイズ (バイト単位) を受け取る UINT を指します。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

このメンバー関数では大文字と小文字が区別されないため、lpszSection パラメーターと lpszEntry パラメーターの文字列は大文字と小文字が異なる場合があります。

Note

GetProfileBinary はバッファーを割り当て、そのアドレスを * ppData で返します。 呼び出し元は、delete [] を使用して バッファーを解放する必要があります。

重要

この関数が返すデータは、NULL で終わるデータとは限らないため、呼び出し元で検証を行う必要があります。 詳しくは、「 バッファー オーバーランの回避」をご覧ください。

CWinApp* pApp = AfxGetApp();

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

// Write the information to the registry.

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

// Read the information from the registry.

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

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

その他の例については、「CWinApp::WriteProfileBinary」を参照してください

CWinApp::GetProfileInt

アプリケーションのレジストリまたは .INI ファイルの指定のセクション内のエントリから整数値を取得します。

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

パラメーター

lpszSection
エントリがあるセクションを指定する NULL で終わる文字列へのポインター。

lpszEntry
値を取得するエントリを指定する NULL で終わる文字列へのポインター。

nDefault
フレームワークがエントリを見つけられなかったときのために指定する既定値。

戻り値

正常終了した場合は、指定されたエントリに続く文字列の整数値を返します。 関数がエントリを 見つけられない場合、戻り値は nDefault パラメーターの値です。 指定されたエントリに対応する値が整数でない場合は、0 を返します。

このメンバー関数は .INI ファイル内の値として 16 進表記をサポートします。 符号付き整数を取得するときは、値 intを .

解説

このメンバー関数では大文字と小文字が区別されないため、lpszSection パラメーターと lpszEntry パラメーターの文字列は大文字と小文字が異なる場合があります。

重要

この関数が返すデータは、NULL で終わるデータとは限らないため、呼び出し元で検証を行う必要があります。 詳しくは、「 バッファー オーバーランの回避」をご覧ください。

CWinApp *pApp = AfxGetApp();

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

// Write the information to the registry.

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

// Read the information from the registry.

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

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

その他の例については、「CWinApp::WriteProfileInt」を参照してください

CWinApp::GetProfileString

このメンバー関数を呼び出して、アプリケーションのレジストリまたは .INI ファイル。

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

パラメーター

lpszSection
エントリがあるセクションを指定する NULL で終わる文字列へのポインター。

lpszEntry
文字列を取得するエントリを含む null で終わる文字列を指します。 この値を NULL にすることはできません。

lpszDefault
初期化ファイルにエントリが見つからない場合は、指定されたエントリの既定の文字列値をポイントします。

戻り値

戻り値は、アプリケーションの文字列です。文字列が見つからない場合は INI ファイルまたは lpszDefault 。 フレームワークでサポートされる文字列の最大長は_MAX_PATH。 lpszDefault が NULL の場合、戻り値は空の文字列です。

解説

重要

この関数が返すデータは、NULL で終わるデータとは限らないため、呼び出し元で検証を行う必要があります。 詳しくは、「 バッファー オーバーランの回避」をご覧ください。

CWinApp *pApp = AfxGetApp();

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

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

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

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

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

別の例については、CWinApp::GetProfileInt の例 を参照してください

CWinApp::GetSectionKey

HKEY_CURRENT_UStandard Edition R\"Software"\RegistryKey\AppName\lpszSection のキーを返します。

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

パラメーター

lpszSection
取得するキーの名前。

pTM
CAtlTransactionManager オブジェクトを指すポインター。

戻り値

関数が成功した場合のセクション キー。それ以外の場合は NULL。

解説

CWinApp::HideApplication

開いているドキュメントを閉じる前にアプリケーションを非表示にするには、このメンバー関数を呼び出します。

void HideApplication();

CWinApp::HtmlHelp

このメンバー関数を呼び出して、HTMLHelp アプリケーションを呼び出します。

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

パラメーター

dwData
追加のデータを指定します。 使用される値は、nCmd パラメーターの値によって異なります。 既定値は、HH_HELP_CONTEXT0x000F意味します。

nCmd
要求されるヘルプの種類を指定します。 使用可能な値の一覧と dwData パラメーターへの影響については、Windows SDK の HtmlHelpW または HtmlHelpA API 関数で説明されている uCommand パラメーターを参照してください

解説

フレームワークは、この関数を呼び出して HTMLHelp アプリケーションを呼び出します。

フレームワークは、アプリケーションの終了時に HTMLHelp アプリケーションを自動的に閉じます。

CWinApp::InitInstance

Windows では、同じプログラムの複数のコピーを同時に実行できます。

virtual BOOL InitInstance();

戻り値

初期化が成功した場合は 0 以外。それ以外の場合は 0。

解説

アプリケーションの初期化は概念的には、2 つのセクションに分かれています。1 回限りのアプリケーション初期化は、プログラムの初回実行時に実行される場合と、プログラムのコピーが初めて実行されるたびに実行されるインスタンス初期化です。 フレームワークの実装は、この関数を WinMain 呼び出します。

オーバーライド InitInstance して、Windows で実行されているアプリケーションの新しい各インスタンスを初期化します。 通常、InitInstanceオーバーライドしてメイン ウィンドウ オブジェクトを構築し、そのウィンドウをCWinThread::m_pMainWnd指すデータ メンバーを設定します。 このメンバー関数のオーバーライドの詳細については、「CWinApp: アプリケーション クラス」を参照してください

Note

MFC アプリケーションは、シングルスレッド アパートメント (STA) として初期化する必要があります。 ご自身の InitInstance オーバーライド内で CoInitializeEx を呼び出す場合は、(COINIT_MULTITHREADED ではなく) COINIT_APARTMENTTHREADED を指定してください。

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

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

   CWinApp::InitInstance();

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

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

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


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


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

   return TRUE;
}

CWinApp::IsTaskbarInteractionEnabled

Windows 7 タスク バーの操作が有効になっているかどうかを示します。

virtual BOOL IsTaskbarInteractionEnabled();

戻り値

呼び出され、オペレーティング システムが Windows 7 以降の場合 EnableTaskbarInteraction は TRUE を返します。

解説

タスク バーの操作とは、MDI アプリケーションが、マウス ポインターがアプリケーション タスク バー ボタンの上にある場合に表示される個別のタブ付きサムネイルに MDI 子のコンテンツを表示することを意味します。

CWinApp::LoadCursor

lpszResourceName で指定されたカーソル リソース、または nIDResource指定されたカーソル リソースを現在の実行可能ファイルから読み込みます。

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

パラメーター

lpszResourceName
カーソル リソースの名前を含む null で終わる文字列を指します。 この引数には a CString を使用できます。

nIDResource
カーソル リソースの ID。 リソースの一覧については、Windows SDK の LoadCursor を参照してください

戻り値

成功した場合のカーソルへのハンドル。それ以外の場合は NULL。

解説

LoadCursor 以前に読み込まれていない場合にのみ、カーソルをメモリに読み込みます。それ以外の場合は、既存のリソースのハンドルを取得します。

LoadStandardCursor または LoadOEMCursor メンバー関数を使用して、定義済みの Windows カーソルにアクセスします。

HCURSOR hCursor;

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

CWinApp::LoadIcon

lpszResourceName によって名前が付けられたアイコン リソース、または nIDResource指定されたアイコン リソースを実行可能ファイルから読み込みます。

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

パラメーター

lpszResourceName
アイコン リソースの名前を含む null で終わる文字列を指します。 この引数には a CString を使用することもできます。

nIDResource
アイコン リソースの ID 番号。

戻り値

成功した場合のアイコンへのハンドル。それ以外の場合は NULL。

解説

LoadIcon 以前に読み込まれていない場合にのみ、アイコンを読み込みます。それ以外の場合は、既存のリソースのハンドルを取得します。

LoadStandardIcon または LoadOEMIcon メンバー関数を使用して、定義済みの Windows アイコンにアクセスできます。

Note

このメンバー関数は Win32 API 関数 LoadIcon を呼び出します。この関数は、サイズがSM_CXICONに準拠し、システム メトリック値をSM_CYICONアイコンのみを読み込むことができます。

CWinApp::LoadOEMCursor

nIDCursor指定された Windows 定義済みのカーソル リソースを読み込みます。

HCURSOR LoadOEMCursor(UINT nIDCursor) const;

パラメーター

nIDCursor
定義済みの Windows カーソルを指定するOCR_ マニフェスト定数識別子。 #define OEMRESOURCE WINDOWS.H のOCR_定数にアクセスするには、事前#include \<afxwin.h>に必要です。

戻り値

成功した場合のカーソルへのハンドル。それ以外の場合は NULL。

解説

定義済みの Windows カーソルに LoadOEMCursor アクセスするには、または LoadStandardCursor メンバー関数を使用します。

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

 

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

CWinApp::LoadOEMIcon

nIDIcon で指定された Windows 定義済みのアイコン リソースを 読み込みます

HICON LoadOEMIcon(UINT nIDIcon) const;

パラメーター

nIDIcon
定義済みの Windows アイコンを指定するOIC_ マニフェスト定数識別子。 WINDOWS.H のOIC_定数にアクセスする前#include \<afxwin.h>に必要があります#define OEMRESOURCE

戻り値

成功した場合のアイコンへのハンドル。それ以外の場合は NULL。

解説

LoadOEMIconまたは LoadStandardIcon メンバー関数を使用して、定義済みの Windows アイコンにアクセスします。

CWinApp::LoadStandardCursor

lpszCursorName が指定する Windows 定義済みのカーソル リソースを読み込みます。

HCURSOR LoadStandardCursor(LPCTSTR lpszCursorName) const;

パラメーター

lpszCursorName
定義済みの Windows カーソルを指定するIDC_ マニフェスト定数識別子。 これらの識別子は WINDOWS.H で定義されています。 次の一覧は、lpszCursorName で使用可能な定義済みの値と意味を示しています。

  • IDC_ARROW標準矢印カーソル

  • IDC_IBEAM標準テキスト挿入カーソル

  • IDC_WAIT Windows が時間のかかるタスクを実行するときに使用される砂時計カーソル

  • 選択用のIDC_CROSSの十字カーソル

  • IDC_UPARROW上を向く矢印

  • IDC_SIZE廃止され、サポートされていません。IDC_SIZEALLを使用する

  • IDC_SIZEALL 4 方向の矢印です。 ウィンドウのサイズ変更に使用するカーソル。

  • IDC_ICON廃止され、サポートされていません。 IDC_ARROWを使用します。

  • IDC_SIZENWStandard Edition左上と右下に両端が付いた 2 方向矢印

  • IDC_SIZENESW右上と左下に両端が付いた 2 方向矢印

  • IDC_SIZEWE水平 2 方向矢印

  • IDC_SIZENS 縦向き 2 方向矢印

戻り値

成功した場合のカーソルへのハンドル。それ以外の場合は NULL。

解説

LoadStandardCursorまたは LoadOEMCursor メンバー関数を使用して、定義済みの Windows カーソルにアクセスします。

HCURSOR hCursor;

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

CWinApp::LoadStandardIcon

lpszIconName が指定する Windows 定義済みのアイコン リソースを読み込みます。

HICON LoadStandardIcon(LPCTSTR lpszIconName) const;

パラメーター

lpszIconName
定義済みの Windows アイコンを指定するマニフェスト定数識別子。 これらの識別子は WINDOWS.H で定義されています。 使用可能な定義済みの値とその説明の一覧については、Windows SDK の LoadIconlpIconName パラメーターを参照してください。

戻り値

成功した場合のアイコンへのハンドル。それ以外の場合は NULL。

解説

または LoadOEMIcon メンバー関数をLoadStandardIcon使用して、定義済みの Windows アイコンにアクセスします。

CWinApp::LoadStdProfile設定

InitInstance メンバー関数内からこのメンバー関数を呼び出して、最近使用した (MRU) ファイルと最後のプレビュー状態の一覧を有効にして読み込みます。

void LoadStdProfileSettings(UINT nMaxMRU = _AFX_MRU_COUNT);

パラメーター

nMaxMRU
追跡する最近使用したファイルの数。

解説

nMaxMRU が 0 の場合、MRU リストはメインされません。

CWinApp::m_bHelpMode

アプリケーションがヘルプ コンテキスト モード (従来は Shift + F1 で呼び出される) の場合は TRUE。それ以外の場合は FAL Standard Edition。

BOOL m_bHelpMode;

解説

ヘルプ コンテキスト モードでは、カーソルは疑問符になり、ユーザーは画面上でカーソルを移動できます。 ヘルプ モードで特別な処理を実装する場合は、このフラグを調べます。 m_bHelpMode は BOOL 型のパブリック変数です。

CWinApp::m_dwRestartManagerSupportFlags

再起動マネージャーの動作を決定するフラグ。

DWORD m_dwRestartManagerSupportFlags;

解説

再起動マネージャーを有効にするには、必要な動作に設定 m_dwRestartManagerSupportFlags します。 次の表に、使用可能なフラグを示します。

フラグ 説明
AFX_RESTART_MANAGER_SUPPORT_RESTART アプリケーションは、CWinApp::RegisterWithRestartManager を使用して登録されます。 アプリケーションが予期せず終了した場合は、再起動マネージャーがアプリケーションを再起動します。
- AFX_RESTART_MANAGER_SUPPORT_RECOVERY アプリケーションは再起動マネージャーに登録され、再起動マネージャーはアプリケーションの再起動時に回復コールバック関数を呼び出します。 既定の回復コールバック関数は CWinApp::ApplicationRecoveryCallback です。
- AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART 自動保存が有効になり、アプリケーションの再起動時に、開いているドキュメントが再起動マネージャーによって自動的に保存されます。
- AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL 自動保存が有効になり、再起動マネージャーは開いているドキュメントを定期的に自動保存します。 間隔は CWinApp::m_nAutosaveInterval によって 定義されます
- AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES 再起動マネージャーは、予期しない終了からアプリケーションを再起動した後、以前に開いたドキュメントを開きます。 CDataRecoveryHandler クラス、開いているドキュメントの一覧の格納と復元を処理します。
- AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES 再起動マネージャーは、アプリケーションを再起動した後、自動保存されたファイルを復元するようにユーザーに求めます。 このクラスは CDataRecoveryHandler ユーザーに対してクエリを実行します。
- AFX_RESTART_MANAGER_SUPPORT_NO_AUTOSAVE AFX_RESTART_MANAGER_SUPPORT_RESTART、AFX_RESTART_MANAGER_SUPPORT_RECOVER、およびAFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILESの和集合。
- AFX_RESTART_MANAGER_SUPPORT_ALL_ASPECTS AFX_RESTART_MANAGER_SUPPORT_NO_AUTOSAVE、AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART、AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL、およびAFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILESの和集合。
- AFX_RESTART_MANAGER_SUPPORT_RESTART_ASPECTS AFX_RESTART_MANAGER_SUPPORT_RESTART、AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART、AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES、およびAFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILESの和集合。
- AFX_RESTART_MANAGER_SUPPORT_RECOVERY_ASPECTS 共用体ofAFX_RESTART_MANAGER_SUPPORT_RECOVERY、AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL、AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES、およびAFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES。

CWinApp::m_eHelpType

このデータ メンバーの型は、クラス内で CWinApp 定義AFX_HELP_TYPE列挙型です。

AFX_HELP_TYPE m_eHelpType;

解説

AFX_HELP_TYPE列挙体は次のように定義されます。

enum AFX_HELP_TYPE {
    afxWinHelp = 0,
    afxHTMLHelp = 1
    };
  • アプリケーションのヘルプを HTML ヘルプに設定するには、SetHelpMode を呼び出して指定しますafxHTMLHelp

  • アプリケーションのヘルプを WinHelp に設定するには、.SetHelpModeafxWinHelp

CWinApp::m_hInstance

Windows で渡される hInstance パラメーターに対応しますWinMain

HINSTANCE m_hInstance;

解説

m_hInstanceデータ メンバーは、Windows で実行されているアプリケーションの現在のインスタンスへのハンドルです。 これは、グローバル関数 AfxGetInstanceHandle によって返されますm_hInstance は HINSTANCE 型のパブリック変数です。

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

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

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

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

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

CWinApp::m_lpCmdLine

Windows で渡される lpCmdLine パラメーターに対応しますWinMain

LPTSTR m_lpCmdLine;

解説

アプリケーションのコマンド ラインを指定する null で終わる文字列を指します。 アプリケーションの起動時にユーザーが入力したコマンド ライン引数にアクセスするために使用 m_lpCmdLine します。 m_lpCmdLine は LPTSTR 型のパブリック変数です。

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

CWinApp::m_nAutosaveInterval

自動保存の間の時間 (ミリ秒単位)。

int m_nAutosaveInterval;

解説

開いているドキュメントを一定の間隔で自動保存するように再起動マネージャーを構成できます。 アプリケーションがファイルを自動保存しない場合、このパラメーターは無効です。

CWinApp::m_nCmdShow

Windows で渡される nCmdShow パラメーターに対応しますWinMain

int m_nCmdShow;

解説

アプリケーションの メイン ウィンドウに対して CWnd::ShowWindow を呼び出すときは、引数として渡すm_nCmdShow必要があります。 m_nCmdShow は型 intのパブリック変数です。

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

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

CWinApp::m_pActiveWnd

このデータ メンバーを使用して、OLE サーバー アプリケーションをインプレースアクティブ化した OLE コンテナー アプリケーションのメイン ウィンドウへのポインターを格納します。

解説

このデータ メンバーが NULL の場合、アプリケーションはインプレース アクティブではありません。

フレームワークは、フレーム ウィンドウが OLE コンテナー アプリケーションによってインプレースアクティブ化されるときに、このメンバー変数を設定します。

CWinApp::m_pDataRecoveryHandler

アプリケーションのデータ復旧ハンドラーへのポインター。

CDataRecoveryHandler* m_pDataRecoveryHandler;

解説

アプリケーションのデータ回復ハンドラーは、開いているドキュメントを監視し、自動保存します。 フレームワークでは、データ回復ハンドラーを使用して、アプリケーションが予期せず終了した後にアプリケーションが再起動したときに、自動保存されたファイルを復元します。 詳細については、「CDataRecoveryHandler クラス」を参照してください

CWinApp::m_pszAppName

アプリケーションの名前を指定します。

LPCTSTR m_pszAppName;

解説

アプリケーション名は、CWinApp コンストラクターに渡されるパラメーターから取得することも、指定しない場合は、AFX_IDS_APP_TITLEの ID を持つリソース文字列に渡すこともできます。 リソースにアプリケーション名が見つからない場合は、プログラムの .EXE ファイル名から取得されます。

グローバル関数 AfxGetAppName によって返されます。 m_pszAppName は const char 型 のパブリック変数です*

Note

m_pszAppNameを割り当てる場合は、ヒープに動的に割り当てる必要があります。 デストラクターはCWinApp、このポインターを使用して free( ) を呼び出します。 多くの場合、() ランタイム ライブラリ関数を _tcsdup使用して割り当てを行います。 また、新しい値を割り当てる前に、現在のポインターに関連付けられているメモリを解放します。 次に例を示します。

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

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

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

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

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

CWinApp::m_pszExeName

拡張子のないアプリケーションの実行可能ファイルの名前を格納します。

LPCTSTR m_pszExeName;

解説

m_pszAppNameとは異なり、この名前には空白を含めることはできません。 m_pszExeName は const char 型 のパブリック変数です*

Note

m_pszExeNameを割り当てる場合は、ヒープに動的に割り当てる必要があります。 デストラクターはCWinApp、このポインターを使用して free( ) を呼び出します。 多くの場合、() ランタイム ライブラリ関数を _tcsdup使用して割り当てを行います。 また、新しい値を割り当てる前に、現在のポインターに関連付けられているメモリを解放します。 次に例を示します。

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

CWinApp::m_pszHelpFilePath

アプリケーションのヘルプ ファイルへのパスを格納します。

LPCTSTR m_pszHelpFilePath;

解説

既定では、フレームワークは "" を使用してアプリケーションの名前に初期化します m_pszHelpFilePath 。HLP" が追加されました。 ヘルプ ファイルの名前を変更するには、目的のヘルプ ファイルの完全な名前を含む文字列を指すよう設定 m_pszHelpFilePath します。 これを行うのに便利な場所は、アプリケーションの InitInstance 関数にあります。 m_pszHelpFilePath は const char 型 のパブリック変数です*

Note

m_pszHelpFilePathを割り当てる場合は、ヒープに動的に割り当てる必要があります。 デストラクターはCWinApp、このポインターを使用して free( ) を呼び出します。 多くの場合、() ランタイム ライブラリ関数を _tcsdup使用して割り当てを行います。 また、新しい値を割り当てる前に、現在のポインターに関連付けられているメモリを解放します。 次に例を示します。

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

CWinApp::m_pszProfileName

アプリケーションの名前を格納します。INI ファイル。

LPCTSTR m_pszProfileName;

解説

m_pszProfileName は const char 型 のパブリック変数です*

Note

m_pszProfileNameを割り当てる場合は、ヒープに動的に割り当てる必要があります。 デストラクターはCWinApp、このポインターを使用して free( ) を呼び出します。 多くの場合、() ランタイム ライブラリ関数を _tcsdup使用して割り当てを行います。 また、新しい値を割り当てる前に、現在のポインターに関連付けられているメモリを解放します。 次に例を示します。

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

CWinApp::m_pszRegistryKey

レジストリまたは INI ファイル内のアプリケーション プロファイル設定が格納される場所を決定するために使用されます。

LPCTSTR m_pszRegistryKey;

解説

通常、このデータ メンバーは読み取り専用として扱われます。

  • 値はレジストリ キーに格納されます。 アプリケーション プロファイル設定の名前は、次のレジストリ キーに追加されます: HKEY_CURRENT_UStandard Edition R/Software/LocalAppWizard-Generated/。

m_pszRegistryKeyを割り当てる場合は、ヒープに動的に割り当てる必要があります。 デストラクターはCWinApp、このポインターを使用して free( ) を呼び出します。 多くの場合、() ランタイム ライブラリ関数を _tcsdup使用して割り当てを行います。 また、新しい値を割り当てる前に、現在のポインターに関連付けられているメモリを解放します。 次に例を示します。

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

CWinApp::m_pszAppID

アプリケーション ユーザー モデル ID。

LPCTSTR m_pszAppID;

解説

CWinApp::OnContextHelp

アプリケーション内で Shift + F1 ヘルプを処理します。

afx_msg void OnContextHelp();

解説

このメンバー関数を ON_COMMAND( ID_CONTEXT_HELP, OnContextHelp ) 有効にするには、クラス メッセージ マップにステートメントを CWinApp 追加し、アクセラレータ テーブル エントリ (通常は Shift + F1) を追加する必要があります。

OnContextHelp は、アプリケーションをヘルプ モードにします。 カーソルが矢印と疑問符に変わり、ユーザーはマウス ポインターを移動し、マウスの左ボタンを押してダイアログ ボックス、ウィンドウ、メニュー、またはコマンド ボタンを選択できます。 このメンバー関数は、カーソルの下にあるオブジェクトのヘルプ コンテキストを取得し、そのヘルプ コンテキストで Windows 関数 WinHelp を呼び出します。

CWinApp::OnDDECommand

メイン フレーム ウィンドウが DDE 実行メッセージを受信したときにフレームワークによって呼び出されます。

virtual BOOL OnDDECommand(LPTSTR lpszCommand);

パラメーター

lpszCommand
アプリケーションが受け取った DDE コマンド文字列を指します。

戻り値

コマンドが処理される場合は 0 以外。それ以外の場合は 0。

解説

既定の実装では、コマンドがドキュメントを開く要求であるかどうかをチェックし、存在する場合は、指定したドキュメントを開きます。 通常、Windows ファイル マネージャーは、ユーザーがデータ ファイルをダブルクリックすると、このような DDE コマンド文字列を送信します。 この関数をオーバーライドして、印刷するコマンドなど、他の DDE 実行コマンドを処理します。

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

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

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

CWinApp::OnFileNew

ID_FILE_NEW コマンドを実装します。

afx_msg void OnFileNew();

解説

このメンバー関数を有効にするには、 ON_COMMAND( ID_FILE_NEW, OnFileNew ) クラス メッセージ マップに CWinApp ステートメントを追加する必要があります。 有効にした場合、この関数は [新しいファイル] コマンドの実行を処理します。

このメンバー関数をオーバーライドする方法の既定の動作とガイダンスについては、テクニカル ノート 22 を参照してください。

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

 

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

CWinApp::OnFileOpen

ID_FILE_OPEN コマンドを実装します。

afx_msg void OnFileOpen();

解説

このメンバー関数を有効にするには、 ON_COMMAND( ID_FILE_OPEN, OnFileOpen ) クラス メッセージ マップに CWinApp ステートメントを追加する必要があります。 有効にした場合、この関数はファイルを開くコマンドの実行を処理します。

既定の動作と、このメンバー関数をオーバーライドする方法に関するガイダンスについては、テクニカル ノート 22 を参照してください

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

 

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

CWinApp::OnFilePrintSetup

ID_FILE_PRINT_Standard Edition TUP コマンドを実装します。

afx_msg void OnFilePrintSetup();

解説

このメンバー関数を有効にするには、 ON_COMMAND( ID_FILE_PRINT_SETUP, OnFilePrintSetup ) クラス メッセージ マップに CWinApp ステートメントを追加する必要があります。 有効にした場合、この関数は File Print コマンドの実行を処理します。

既定の動作と、このメンバー関数をオーバーライドする方法に関するガイダンスについては、テクニカル ノート 22 を参照してください

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

 

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

CWinApp::OnHelp

アプリケーション内で F1 ヘルプを (現在のコンテキストを使って) 処理します。

afx_msg void OnHelp();

解説

通常は、F1 キーのアクセラレータ キー エントリも追加します。 F1 キーを有効にすることは規則に過ぎません。要件ではありません。

このメンバー関数を有効にするには、 ON_COMMAND( ID_HELP, OnHelp ) クラス メッセージ マップに CWinApp ステートメントを追加する必要があります。 有効になっている場合は、ユーザーが F1 キーを押したときにフレームワークによって呼び出されます。

このメッセージ ハンドラー関数の既定の実装は、現在のウィンドウ、ダイアログ ボックス、またはメニュー項目に対応するヘルプ コンテキストを決定し、WINHELP.EXE を呼び出します。 現在使用できるコンテキストがない場合、関数は既定のコンテキストを使用します。

現在フォーカスがあるウィンドウ、ダイアログ ボックス、メニュー項目、またはツール バー ボタン以外にヘルプ コンテキストを設定するには、このメンバー関数をオーバーライドします。 目的のヘルプ コンテキスト ID を使用して呼び出 WinHelp します。

CWinApp::OnHelpFinder

ID_HELP_FINDERコマンドとID_DEFAULT_HELP コマンドを処理します。

afx_msg void OnHelpFinder();

解説

このメンバー関数を有効にするには、 ON_COMMAND( ID_HELP_FINDER, OnHelpFinder ) クラス メッセージ マップに CWinApp ステートメントを追加する必要があります。 有効にした場合、アプリケーションのユーザーが Help Finder コマンドを選択して標準のHELP_FINDER トピックで呼び出すときに、フレームワークはこのメッセージ ハンドラー関数を呼び出WinHelpします。

CWinApp::OnHelpIndex

ID_HELP_INDEX コマンドを処理し、既定のヘルプ トピックを提供します。

afx_msg void OnHelpIndex();

解説

このメンバー関数を有効にするには、 ON_COMMAND( ID_HELP_INDEX, OnHelpIndex ) クラス メッセージ マップに CWinApp ステートメントを追加する必要があります。 有効な場合、アプリケーションのユーザーがヘルプ インデックス コマンドを選択して標準のHELP_INDEX トピックで呼び出すときに、フレームワークはこのメッセージ ハンドラー関数を呼び出WinHelpします。

CWinApp::OnHelpUsing

ID_HELP_USING コマンドを処理します。

afx_msg void OnHelpUsing();

解説

このメンバー関数を有効にするには、 ON_COMMAND( ID_HELP_USING, OnHelpUsing ) クラス メッセージ マップに CWinApp ステートメントを追加する必要があります。 フレームワークは、アプリケーションのユーザーが Help Using コマンドを選択して標準の HELP_HELPONHELP トピックを使用してアプリケーションを呼び出すときに、このメッセージ ハンドラー関数を呼び出WinHelpします。

CWinApp::OnIdle

アイドル時間処理を実行するには、このメンバー関数をオーバーライドします。

virtual BOOL OnIdle(LONG lCount);

パラメーター

Lcount
アプリケーションのメッセージ キューが空のときに、毎回 OnIdle インクリメントされるカウンターが呼び出されます。 この数は、新しいメッセージが処理されるたびに 0 にリセットされます。 lCount パラメーターを使用すると、メッセージを処理せずにアプリケーションがアイドル状態になった時間の相対的な長さを判断できます。

戻り値

より多くのアイドル処理時間を受信する場合は 0 以外。これ以上アイドル時間が必要ない場合は 0。

解説

OnIdle は、アプリケーションのメッセージ キューが空の場合に、既定のメッセージ ループで呼び出されます。 オーバーライドを使用して、独自のバックグラウンド アイドル ハンドラー タスクを呼び出します。

OnIdle は、アイドル処理時間が不要であることを示す 0 を返す必要があります。 lCount パラメーターは、メッセージ キューが空のときに呼び出されるたびにインクリメントOnIdleされ、新しいメッセージが処理されるたびに 0 にリセットされます。 この数に基づいて、異なるアイドル ルーチンを呼び出すことができます。

アイドル ループ処理の概要を次に示します。

  1. Microsoft Foundation クラス ライブラリのメッセージ ループでメッセージ キューがチェックされ、保留中のメッセージが見つからない場合は、アプリケーション オブジェクトを呼び出OnIdleし、lCount 引数として 0 を指定します。

  2. OnIdle は何らかの処理を実行し、0 以外の値を返して、さらに処理を実行するために再度呼び出す必要があることを示します。

  3. メッセージ ループは、メッセージ キューをもう一度チェックします。 保留中のメッセージがない場合は、lCount 引数をインクリメントして、再度呼び出OnIdleします。

  4. 最終的に、 OnIdle アイドル状態のすべてのタスクの処理が完了し、0 が返されます。 これにより、次のメッセージがメッセージ キューから受信されるまで、呼び出し OnIdle を停止するようにメッセージ ループに指示されます。この時点で、アイドル サイクルが再開され、引数が 0 に設定されます。

アプリケーションが戻るまでOnIdleユーザー入力を処理できないため、時間の長いタスクOnIdleを実行しないでください。

Note

更新の既定のOnIdle実装では、メニュー項目やツール バー ボタンなどのコマンド ユーザー インターフェイス オブジェクトが実行され、内部データ構造クリーンアップが実行されます。 したがって、オーバーライドする場合は、オーバーライドOnIdleされたバージョンで呼び出すCWinApp::OnIdlelCount必要があります。 まず、すべての基底クラスのアイドル処理を呼び出します (つまり、基底クラス OnIdle が 0 を返すまで)。 基底クラスの処理が完了する前に作業を実行する必要がある場合は、基底クラスの実装を確認して、作業を行う適切な lCount を 選択します。

メッセージ キューからメッセージが取得されるたびに呼び出されないようにするOnIdle場合は、CWinThreadIsIdleMessageオーバーライドできます。 アプリケーションが非常に短いタイマーを設定している場合、またはシステムが WM_SYSTIMER メッセージを送信している場合は、 OnIdle 繰り返し呼び出され、パフォーマンスが低下します。

次の 2 つの例は、その使用方法 OnIdleを示しています。 最初の例では、lCount 引数を使用して 2 つのアイドル 状態のタスクを処理し、タスクに優先順位を付けます。 最初のタスクは優先度が高く、可能な限り実行する必要があります。 2 番目のタスクは重要度が低く、ユーザー入力に長い一時停止がある場合にのみ実行する必要があります。 の基底クラス バージョン OnIdleの呼び出しに注意してください。 2 番目の例では、優先順位が異なるアイドル 状態のタスクのグループを管理します。

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

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

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

CWinApp::OpenDocumentFile

フレームワークは、このメソッドを呼び出して、アプリケーションの名前付き CDocument ファイルを開きます。

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

パラメーター

lpszFileName
[in] 開くファイルの名前。

bAddToMRU
[in]TRUE は、ドキュメントが最新のファイルの 1 つであることを示します。FAL Standard Edition は、ドキュメントが最新のファイルの 1 つではないことを示します。

戻り値

成功した場合の CDocument ポインター。それ以外の場合は NULL。

解説

その名前のドキュメントが既に開いている場合は、そのドキュメントを含む最初のフレーム ウィンドウにフォーカスが移動します。 アプリケーションが複数のドキュメント テンプレートをサポートしている場合、フレームワークはファイル名拡張子を使用して、ドキュメントの読み込みを試みる適切なドキュメント テンプレートを見つけます。 成功した場合、ドキュメント テンプレートは、ドキュメントのフレーム ウィンドウとビューを作成します。

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

CWinApp::P arseCommandLine

このメンバー関数を呼び出してコマンド ラインを解析し、パラメーターを一度に 1 つずつ CCommandLineInfo::P arseParam に送信します。

void ParseCommandLine(CCommandLineInfo& rCmdInfo);

パラメーター

rCmdInfo
CCommandLineInfo オブジェクトへの参照。

解説

アプリケーション ウィザードを使用して新しい MFC プロジェクトを開始すると、アプリケーション ウィザードによってローカル インスタンスCCommandLineInfoが作成され、InitInstance メンバー関数が呼び出ProcessShellCommandされますParseCommandLine。 コマンド ラインは、以下で説明するルートに従います。

  1. InitInstance作成された後、 CCommandLineInfo オブジェクトは ParseCommandLine.

  2. ParseCommandLine 次に、各パラメーターに対して 1 回、繰り返し呼び出 CCommandLineInfo::ParseParam します。

  3. ParseParamはオブジェクトをCCommandLineInfo塗りつぶします。このオブジェクトは ProcessShellCommand渡されます。

  4. ProcessShellCommand は、コマンド ライン引数とフラグを処理します。

必要に応じて直接呼び出 ParseCommandLine すことができます。

コマンド ライン フラグの詳細については、「CCommandLineInfo::m_nShellCommand」を参照してください

CWinApp::P reTranslateMessage

Windows 関数 TranslateMessage と DispatchMessage にディスパッチされる前にウィンドウ メッセージをフィルター処理するには、この関数をオーバーライドします。既定の実装ではアクセラレータ キー変換が実行されるため、オーバーライドされたバージョンでメンバー関数を呼び出すCWinApp::PreTranslateMessage必要があります。

virtual BOOL PreTranslateMessage(MSG* pMsg);

パラメーター

Pmsg
処理するメッセージを 含む MSG 構造体へのポインター。

戻り値

メッセージが完全に処理され PreTranslateMessage 、それ以上処理すべきでない場合は 0 以外。 メッセージを通常の方法で処理する必要がある場合は 0。

CWinApp::P rocessMessageFilter

フレームワークのフック関数は、このメンバー関数を呼び出して、特定の Windows メッセージをフィルター処理して応答します。

virtual BOOL ProcessMessageFilter(
    int code,
    LPMSG lpMsg);

パラメーター

code
フック コードを指定します。 このメンバー関数は、コードを使用して lpMsg の処理方法 を決定します。

lpMsg
Windows MSGtructure へのポインター。

戻り値

メッセージが処理される場合は 0 以外。それ以外の場合は 0。

解説

フック関数は、アプリケーションの通常のメッセージ処理に送信される前にイベントを処理します。

この高度な機能をオーバーライドする場合は、必ず基底クラス バージョンを呼び出して、フレームワークのフック処理をメインします。

CWinApp::P rocessShellCommand

このメンバー関数は、rCmdInfo によって識別されるオブジェクトからCCommandLineInfo渡されたパラメーターを受け取り、指定されたアクションを実行するために InitInstance によって呼び出されます。

BOOL ProcessShellCommand(CCommandLineInfo& rCmdInfo);

パラメーター

rCmdInfo
CCommandLineInfo オブジェクトへの参照。

戻り値

シェル コマンドが正常に処理された場合は 0 以外。 0 の場合は、InitInstance から FAL Standard Edition を返します

解説

アプリケーション ウィザードを使用して新しい MFC プロジェクトを開始すると、アプリケーション ウィザードによってローカル インスタンスCCommandLineInfoが作成され、メンバー関数で InitInstance ParseCommandLine が呼び出ProcessShellCommandされます。 コマンド ラインは、以下で説明するルートに従います。

  1. InitInstance作成された後、 CCommandLineInfo オブジェクトは ParseCommandLine.

  2. ParseCommandLine次に、CCommandLineInfo::P arseParam をパラメーターごとに 1 回繰り返し呼び出します。

  3. ParseParam はオブジェクトを CCommandLineInfo 塗りつぶします。このオブジェクトは次に ProcessShellCommand渡されます。

  4. ProcessShellCommand は、コマンド ライン引数とフラグを処理します。

CCommandLineInfo::m_nShellCommand識別されるオブジェクトのデータ メンバーCCommandLineInfoは、クラス内でCCommandLineInfo定義されている次の列挙型です。

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

これらの各値の簡単な説明については、次を参照してください CCommandLineInfo::m_nShellCommand

CWinApp::P rocessWndProcException

フレームワークは、ハンドラーがアプリケーションのメッセージまたはコマンド ハンドラーのいずれかでスローされた例外をキャッチしない場合に常に、このメンバー関数を呼び出します。

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

パラメーター

e
キャッチされない例外へのポインター。

Pmsg
フレームワークが例外をスローする原因となった Windows メッセージに関する情報を含む MSGtructure。

戻り値

Windows に返される値。 通常、これは Windows メッセージの場合は 0L、コマンド メッセージの場合は 1L (TRUE) です。

解説

このメンバー関数を直接呼び出さないでください。

このメンバー関数の既定の実装では、メッセージ ボックスが作成されます。 キャッチされない例外がメニュー、ツール バー、またはアクセラレータ コマンドの失敗で発生した場合、メッセージ ボックスに "コマンドが失敗しました" というメッセージが表示されます。それ以外の場合は、"内部アプリケーション エラー" メッセージが表示されます。

例外のグローバル処理を提供するには、このメンバー関数をオーバーライドします。 メッセージ ボックスを表示する場合にのみ、基本機能を呼び出します。

CWinApp::Register

によって RegisterShellFileTypes処理されない登録タスクを実行します。

virtual BOOL Register();

戻り値

正常に完了した場合はゼロ以外、それ以外の場合は 0 です。

解説

既定の実装では、単に TRUE が返されます。 カスタマイズされた登録手順を提供するには、この関数をオーバーライドします。

CWinApp::RegisterShellFileTypes

このメンバー関数を呼び出して、アプリケーションのすべてのドキュメントの種類を Windows ファイル マネージャーに登録します。

void RegisterShellFileTypes(BOOL bCompat = FALSE);

パラメーター

bCompat
[in]TRUE は、シェル コマンドの登録エントリを追加印刷および印刷、シェルから直接、またはファイルをプリンター オブジェクトにドラッグしてユーザーを許可します。 また、DefaultIcon キーも追加されます。 既定では、このパラメーターは旧バージョンとの互換性のために FAL Standard Edition です。

解説

これにより、ユーザーはファイル マネージャー内からアプリケーションによって作成されたデータ ファイルをダブルクリックして開きます。 アプリケーション内の各ドキュメント テンプレートに対して AddDocTemplate を呼び出した後に呼び出RegisterShellFileTypesします。 また、呼び出すときに EnableShellOpen メンバー関数を呼び出します RegisterShellFileTypes

RegisterShellFileTypesは、アプリケーションがメインする CDocTemplate オブジェクトの一覧を反復処理し、各ドキュメント テンプレートに対して、Windows メインがファイルの関連付けを保持する登録データベースにエントリを追加します。 ファイル マネージャーでは、これらのエントリを使用して、ユーザーがダブルクリックしたときにデータ ファイルを開きます。 これにより、出荷する必要がなくなります.アプリケーションで REG ファイルを開きます。

Note

RegisterShellFileTypes は、ユーザーが管理者権限でプログラムを実行する場合にのみ機能します。 プログラムに管理者権限がない場合は、レジストリ キーを変更できません。

登録データベースが既に特定のファイル名拡張子を別のファイルの種類に関連付ける場合、新しい関連付けは作成されません。 この情報を CDocTemplate 登録するために必要な文字列の形式については、クラスを参照してください。

CWinApp::RegisterWithRestartManager

アプリケーションを再起動マネージャーに登録します。

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

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

パラメーター

bRegisterRecoveryCallback
[in]TRUE は、アプリケーションのこのインスタンスが復旧コールバック関数を使用することを示します。FAL Standard Edition は、そうでないことを示します。 フレームワークは、アプリケーションが予期せず終了したときに回復コールバック関数を呼び出します。 詳細については、「CWinApp::ApplicationRecoveryCallback」を参照してください

strRestartIdentifier
[in]再起動マネージャーのこのインスタンスを識別する一意の文字列。 再起動マネージャー識別子は、アプリケーションのインスタンスごとに一意です。

pwzCommandLineArgs
[in]コマンド ラインからの追加の引数を含む文字列。

dwRestartFlags
[in]再起動マネージャーの省略可能なフラグ。 詳細については、「解説」を参照してください。

pRecoveryCallback
[in]復旧コールバック関数。 この関数は、LPVOID パラメーターを入力として受け取り、DWORD を返す必要があります。 既定の復旧コールバック関数は CWinApp::ApplicationRecoveryCallback.

lpvParam
[in]復旧コールバック関数の入力パラメーター。 詳細については、「CWinApp::ApplicationRecoveryCallback」を参照してください

dwPingInterval
[in]再起動マネージャーが回復コールバック関数が返されるのを待機する時間の長さ。 このパラメーターはミリ秒単位です。

dwCallbackFlags
[in]復旧コールバック関数に渡されるフラグ。 将来の使用に備えて予約されています。

戻り値

メソッドが成功した場合にS_OKします。それ以外の場合はエラー コード。

解説

アプリケーションで自動保存ファイルに既定の MFC 実装を使用する場合は、次の RegisterWithRestartManager単純なバージョンを使用する必要があります。 アプリケーションの RegisterWithRestartManager 自動保存動作をカスタマイズする場合は、複雑なバージョンを使用します。

strRestartIdentifier空の文字列でこのメソッドを呼び出す場合は、RegisterWithRestartManager再起動マネージャーのこのインスタンスの一意の識別子文字列を作成します。

アプリケーションが予期せず終了すると、再起動マネージャーはコマンド ラインからアプリケーションを再起動し、オプションの引数として一意の再起動識別子を提供します。 このシナリオでは、フレームワークは 2 回呼び出します RegisterWithRestartManager 。 最初の呼び出しは、文字列識別子の空の文字列を含む CWinApp::InitInstance から取得されます。 次に、メソッド CWinApp::P rocessShellCommand は、一意の再起動識別子を使用して呼び出 RegisterWithRestartManager します。

アプリケーションを再起動マネージャーに登録すると、再起動マネージャーによってアプリケーションが監視されます。 アプリケーションが予期せず終了した場合、再起動マネージャーはシャットダウン プロセス中に回復コールバック関数を呼び出します。 再起動マネージャーは、 dwPingInterval が回復コールバック関数からの応答を待機します。 この時間内に復旧コールバック関数が応答しない場合、アプリケーションは復旧コールバック関数を実行せずに終了します。

既定では、dwRestartFlags はサポートされていませんが、今後使用するために提供されます。 dwRestartFlags に指定できる値は次のとおりです。

  • RESTART_NO_CRASH

  • RESTART_NO_HANG

  • RESTART_NO_PATCH

  • RESTART_NO_REBOOT

CWinApp::ReopenPreviousFilesAtRestart

アプリケーションが予期せず終了したときに開いていたファイルを再起動マネージャーが再度開くかどうかを判断します。

virtual BOOL ReopenPreviousFilesAtRestart() const;

戻り値

TRUE は、再起動マネージャーが以前に開いているファイルを再度開く場合を示します。FAL Standard Edition は、再起動マネージャーが実行しないことを示します。

CWinApp::RestartInstance

再起動マネージャーによって開始されたアプリケーションの再起動を処理します。

virtual BOOL CWinApp::RestartInstance();

戻り値

データ回復ハンドラーが以前に開いたドキュメントを開く場合は TRUE。FAL Standard Editionデータ回復ハンドラーにエラーがある場合、または以前に開いているドキュメントがない場合。

解説

再起動マネージャーがアプリケーションを再起動すると、フレームワークはこのメソッドを呼び出します。 このメソッドは、データ回復ハンドラーを取得し、自動保存されたファイルを復元します。 このメソッドは CDataRecoveryHandler::RestoreAutosavedDocuments を呼び出して、ユーザーが自動保存されたファイルを復元するかどうかを判断します。

CDataRecoveryHandler が開いているドキュメントがないと判断した場合、このメソッドは FAL Standard Edition を返します。 開いているドキュメントがない場合は、通常、アプリケーションが開始されます。

CWinApp::RestoreAutosavedFilesAtRestart

アプリケーションの再起動時に、再起動マネージャーが自動保存されたファイルを復元するかどうかを決定します。

virtual BOOL RestoreAutosavedFilesAtRestart() const;

戻り値

TRUE は、再起動マネージャーが自動保存されたファイルを復元したことを示します。FAL Standard Edition は、再起動マネージャーが実行しないことを示します。

CWinApp::Run

既定のメッセージ ループを提供します。

virtual int Run();

戻り値

intによってWinMain返される値。

解説

Run は、アプリケーションがWM_QUIT メッセージを受信するまで Windows メッセージを取得してディスパッチします。 アプリケーションのメッセージ キューに現在メッセージが含まれている場合は、 Run OnIdle を呼び出してアイドル時間処理を実行します。 受信メッセージは、特別な処理のために PreTranslateMessage メンバー関数に移動し、標準のキーボード翻訳用の Windows 関数TranslateMessageに移動します。最後に、DispatchMessageWindows 関数が呼び出されます。

Run がオーバーライドされることはほとんどありませんが、特別な動作を提供するためにオーバーライドできます。

CWinApp::RunAutomated

この関数を呼び出して、サーバー アプリケーションがクライアント アプリケーションによって起動されたかどうかを示す "/Automation" または " -Automation" オプションが存在するかどうかを判断します。

BOOL RunAutomated();

戻り値

オプションが見つかった場合は 0 以外。それ以外の場合は 0。

解説

存在する場合、オプションはコマンド ラインから削除されます。 OLE オートメーションの詳細については、オートメーション サーバーに関する記事を参照してください。

CWinApp::RunEmbedded

この関数を呼び出して、" /Embedding" または " -Embedding" オプションが存在するかどうかを判断します。これは、サーバー アプリケーションがクライアント アプリケーションによって起動されたかどうかを示します。

BOOL RunEmbedded();

戻り値

オプションが見つかった場合は 0 以外。それ以外の場合は 0。

解説

存在する場合、オプションはコマンド ラインから削除されます。 埋め込みの詳細については、「サーバー: サーバーの実装」を参照してください。

CWinApp::SaveAllModified

アプリケーションの メイン フレーム ウィンドウを閉じるか、WM_QUERYENDStandard Edition SSION メッセージを使用して、すべてのドキュメントを保存するためにフレームワークによって呼び出されます。

virtual BOOL SaveAllModified();

戻り値

アプリケーションを安全に終了できる場合は 0 以外。アプリケーションを安全に終了できない場合は 0。

解説

このメンバー関数の既定の実装では、CDocument::SaveModified メンバー関数が、アプリケーション内のすべての変更されたドキュメントに対して順番に呼び出されます。

CWinApp::SelectPrinter

このメンバー関数を呼び出して特定のプリンターを選択し、[印刷] ダイアログ ボックスで以前に選択したプリンターを解放します。

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

パラメーター

hDevNames
特定のプリンターの ドライバー、デバイス、および出力ポート名を識別する DEVNAMEStructure へのハンドル。

hDevMode
プリンターの デバイスの初期化と環境に関する情報を指定する DEVMODE 構造体のハンドル。

bFreeOld
以前に選択したプリンターを解放します。

解説

hDevModehDevName の両方が NULL の場合は、SelectPrinter現在の既定のプリンターを使用します。

CWinApp::SetHelpMode

アプリケーションのヘルプの種類を設定します。

void SetHelpMode(AFX_HELP_TYPE eHelpType);

パラメーター

eHelpType
使用するヘルプの種類を指定します。 詳細については、 CWinApp::m_eHelpType を参照してください。

解説

アプリケーションのヘルプの種類を設定します。

アプリケーションのヘルプの種類を HTMLHelp に設定するには、EnableHTMLHelp を呼び出 します。 呼び出 EnableHTMLHelpしたら、アプリケーションで HTMLHelp をヘルプ アプリケーションとして使用する必要があります。 WinHelp を使用するように変更する場合は、eHelpTypeafxWinHelpを呼び出SetHelpModeして設定できます。

CWinApp::SetRegistryKey

アプリケーション設定を INI ファイルではなくレジストリに格納します。

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

パラメーター

lpszRegistryKey
キーの名前を含む文字列へのポインター。

nIDRegistryKey
レジストリ キーの名前を含む文字列リソースの ID。

解説

この関数は、m_pszRegistryKeyを設定します。この関数WriteProfileStringCWinAppGetProfileIntWriteProfileIntGetProfileStringは、 この関数が呼び出された場合、最近使用された (MRU) ファイルの一覧もレジストリに格納されます。 通常、レジストリ キーは会社の名前です。 これは、HKEY_CURRENT_UStandard Edition R\Software\company name\<application name>\<<section name>>\<value name> という形式のキーに格納されます。

CWinApp::SupportsApplicationRecovery

再起動マネージャーが予期せず終了したアプリケーションを回復するかどうかを判断します。

virtual BOOL SupportsApplicationRecovery() const;

戻り値

TRUE は、再起動マネージャーがアプリケーションを回復したことを示します。FAL Standard Edition は、再起動マネージャーが実行しないことを示します。

CWinApp::SupportsAutosaveAtInterval

再起動マネージャーが開いているドキュメントを一定の間隔で自動保存するかどうかを決定します。

virtual BOOL SupportsAutosaveAtInterval() const;

戻り値

TRUE は、再起動マネージャーが開いているドキュメントを自動保存したことを示します。FAL Standard Edition は、再起動マネージャーが実行しないことを示します。

CWinApp::SupportsAutosaveAtRestart

アプリケーションの再起動時に、再起動マネージャーが開いているドキュメントを自動保存するかどうかを決定します。

virtual BOOL SupportsAutosaveAtRestart() const;

戻り値

TRUE は、アプリケーションの再起動時に、再起動マネージャーが開いているドキュメントを自動保存します。FAL Standard Edition は、再起動マネージャーが実行しないことを示します。

CWinApp::SupportsRestartManager

アプリケーションが再起動マネージャーをサポートしているかどうかを判断します。

virtual BOOL SupportsRestartManager() const;

戻り値

TRUE は、アプリケーションが再起動マネージャーをサポートしたことを示します。FAL Standard Edition は、アプリケーションにないことを示します。

CWinApp::Unregister

アプリケーション オブジェクトによって登録されているすべてのファイルの登録を解除します。

virtual BOOL Unregister();

戻り値

正常に完了した場合はゼロ以外、それ以外の場合は 0 です。

解説

この関数はUnregister、アプリケーション オブジェクトと Register 関数によって実行された登録を元に戻します。 通常、両方の関数は MFC によって暗黙的に呼び出されるため、コードには表示されません。

この関数をオーバーライドして、カスタムの登録解除手順を実行します。

CWinApp::UnregisterShellFileTypes

このメンバー関数を呼び出して、アプリケーションのすべてのドキュメントの種類を Windows ファイル マネージャーで登録解除します。

void UnregisterShellFileTypes();

CWinApp::WinHelp

WinHelp アプリケーションを呼び出すには、このメンバー関数を呼び出します。

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

パラメーター

dwData
追加のデータを指定します。 使用される値は、nCmd パラメーターの値によって異なります。

nCmd
要求されるヘルプの種類を指定します。 使用可能な値の一覧と、それらが dwData パラメーターに与える影響については、WinHelp Windows 関数を参照してください。

解説

フレームワークは、WinHelp アプリケーションを呼び出すためにこの関数も呼び出します。

アプリケーションが終了すると、フレームワークによって WinHelp アプリケーションが自動的に閉じられます。

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

#define HID_MYTOPIC 101

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

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

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

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

CWinApp::WriteProfileBinary

このメンバー関数を呼び出して、アプリケーションのレジストリまたは .INI ファイル。

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

パラメーター

lpszSection
エントリがあるセクションを指定する NULL で終わる文字列へのポインター。 セクションが存在しない場合は作成されます。 セクションの名前は大文字と小文字は区別されません。文字列は、大文字と小文字の任意の組み合わせにすることができます。

lpszEntry
値の書き込み先となるエントリを含む null で終わる文字列を指します。 指定したセクションにエントリが存在しない場合は作成されます。

pData
書き込むデータを指します。

nBytes
書き込むバイト数を格納します。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

この例では、MFC アプリケーションの任意の関数から使用できる方法WriteProfileBinaryGetProfileBinaryを示す CWinApp クラスを取得するために使用CWinApp* pApp = AfxGetApp();します。

CWinApp *pApp = AfxGetApp();

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

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

別の例については、CWinApp::GetProfileBinary の例 を参照してください

CWinApp::WriteProfileInt

このメンバー関数を呼び出して、指定した値をアプリケーションのレジストリまたは .INI ファイル。

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

パラメーター

lpszSection
エントリがあるセクションを指定する NULL で終わる文字列へのポインター。 セクションが存在しない場合は作成されます。 セクションの名前は大文字と小文字は区別されません。文字列は、大文字と小文字の任意の組み合わせにすることができます。

lpszEntry
値の書き込み先となるエントリを含む null で終わる文字列を指します。 指定したセクションにエントリが存在しない場合は作成されます。

nValue
書き込む値を格納します。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

この例では、MFC アプリケーションの任意の関数から使用できる方法WriteProfileStringWriteProfileIntGetProfileStringGetProfileInt示す CWinApp クラスを取得するために使用CWinApp* pApp = AfxGetApp();します。

CWinApp *pApp = AfxGetApp();

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

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

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

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

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

別の例については、CWinApp::GetProfileInt の例 を参照してください

CWinApp::WriteProfileString

このメンバー関数を呼び出して、指定した文字列をアプリケーションのレジストリまたは .INI ファイル。

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

パラメーター

lpszSection
エントリがあるセクションを指定する NULL で終わる文字列へのポインター。 セクションが存在しない場合は作成されます。 セクションの名前は大文字と小文字は区別されません。文字列は、大文字と小文字の任意の組み合わせにすることができます。

lpszEntry
値の書き込み先となるエントリを含む null で終わる文字列を指します。 指定したセクションにエントリが存在しない場合は作成されます。 このパラメーターが NULL の場合、lpszSection指定されたセクションが削除されます。

lpszValue
書き込む文字列を指します。 このパラメーターが NULL の場合、lpszEntry パラメーターで指定されたエントリが削除されます。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

CWinApp *pApp = AfxGetApp();

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

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

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

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

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

別の例については、CWinApp::GetProfileInt の例 を参照してください

CWinApp::SetAppID

アプリケーションのアプリケーション ユーザー モデル ID を明示的に設定します。 このメソッドは、ユーザー インターフェイスがユーザーに表示される前に呼び出す必要があります (最適な場所はアプリケーション コンストラクターです)。

void SetAppID(LPCTSTR lpcszAppID);

パラメーター

lpcszAppID
アプリケーション ユーザー モデル ID を指定します。

解説

関連項目

CWinThread クラス
階層図
方法: 再起動マネージャーのサポートを追加する