次の方法で共有


CWinApp クラス

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

構文

class CWinApp : public CWinThread

メンバー

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

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

パブリック メソッド

名前 説明
CWinApp::AddDocTemplate 使用可能なドキュメント テンプレートのアプリケーションの一覧にドキュメント テンプレートを追加します。
CWinApp::AddToRecentFileList 最近使用した (MRU) ファイルの一覧にファイル名を追加します。
CWinApp::ApplicationRecoveryCallback アプリケーションが予期せず終了したときにフレームワークによって呼び出されます。
CWinApp::CloseAllDocuments 開いているすべてのドキュメントを閉じます。
CWinApp::CreatePrinterDC プリンター デバイス コンテキストを作成します。
CWinApp::D elRegTree 指定したキーとそのすべてのサブキーを削除します。
CWinApp::D oMessageBox アプリケーションの AfxMessageBox を実装します。
CWinApp::D oWaitCursor 待機カーソルのオンとオフを切り替えます。
CWinApp::EnableD2DSupport アプリケーション D2D のサポートを有効にします。 このメソッドは、メイン ウィンドウが初期化される前に呼び出します。
CWinApp::EnableHtmlHelp WinHelp ではなく、アプリケーションの HTMLHelp を実装します。
CWinApp::EnableTaskbarInteraction タスク バーの操作を有効にします。
CWinApp::ExitInstance オーバーライドして、アプリケーションが終了したときにクリーンアップします。
CWinApp::GetApplicationRecoveryParameter アプリケーションの回復方法の入力パラメーターを取得します。
CWinApp::GetApplicationRecoveryPingInterval 回復コールバック関数が返されるまで再起動マネージャーが待機する時間の長さを返します。
CWinApp::GetApplicationRestartFlags 再起動マネージャーのフラグを返します。
CWinApp::GetAppRegistryKey HKEY_CURRENT_USER\"Software"\RegistryKey\ProfileName のキーを返します。
CWinApp::GetDataRecoveryHandler アプリケーションのこのインスタンスのデータ復旧ハンドラーを取得します。
CWinApp::GetFirstDocTemplatePosition 最初のドキュメント テンプレートの位置を取得します。
CWinApp::GetHelpMode アプリケーションで使用されるヘルプの種類を取得します。
CWinApp::GetNextDocTemplate ドキュメント テンプレートの位置を取得します。 再帰的に使用できます。
CWinApp::GetPrinterDeviceDefaults プリンター デバイスの既定値を取得します。
CWinApp::GetProfileBinary アプリケーションのエントリからバイナリ データを取得します。INI ファイル。
CWinApp::GetProfileInt アプリケーションのエントリから整数を取得します。INI ファイル。
CWinApp::GetProfileString アプリケーションのエントリから文字列を取得します。INI ファイル。
CWinApp::GetSectionKey HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\lpszSection のキーを返します。
CWinApp::HideApplication すべてのドキュメントを閉じる前に、アプリケーションを非表示にします。
CWinApp::HtmlHelp HTMLHelp Windows 関数を呼び出します。
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 WinHelp Windows 関数を呼び出します。
CWinApp::WriteProfileBinary アプリケーションのエントリにバイナリ データを書き込みます。INI ファイル。
CWinApp::WriteProfileInt アプリケーションのエントリに整数を書き込みます。INI ファイル。
CWinApp::WriteProfileString アプリケーションのエントリに文字列を書き込みます。INI ファイル。

保護メソッド

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

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

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

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

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

解説

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

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

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

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

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

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

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

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

CWinApp クラスの詳細については、「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

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

virtual void AddToRecentFileList(LPCTSTR lpszPathName);

パラメーター

lpszPathName
ファイルのパス。

解説

このメンバー関数を使用する前に、 LoadStdProfileSettings メンバー関数を呼び出して、現在の 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 です。それ以外の場合は FALSE。

解説

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

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またはファイル名を使用します。

解説

CWinApp派生クラスのグローバル オブジェクトを 1 つ作成する必要があります。 アプリケーションに含めることができる CWinApp オブジェクトは 1 つだけです。 コンストラクターは、 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
メッセージ ボックス style

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

戻り値

AfxMessageBoxと同じ値を返します。

解説

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

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

CWinApp::D oWaitCursor

このメンバー関数は、 CWaitCursorCCmdTarget::BeginWaitCursorCCmdTarget::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、それ以外の場合は FALSE を返します。

CWinApp::EnableHtmlHelp

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

void EnableHtmlHelp();

解説

CWinApp::EnableShellOpen

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

void EnableShellOpen();

解説

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

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

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

CWinApp::EnableTaskbarInteraction

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

BOOL EnableTaskbarInteraction(BOOL bEnable = TRUE);

パラメーター

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

戻り値

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

解説

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

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_USER\"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
GetNextDocTemplateまたはGetFirstDocTemplatePosition の前回の呼び出しによって返される POSITION 値への参照。 値は、この呼び出しによって次の位置に更新されます。

戻り値

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_USER\"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 パラメーターの値によって異なります。 既定値は 0x000F で、 HH_HELP_CONTEXTを意味します。

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

戻り値

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

解説

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

CWinApp::LoadCursor

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

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

パラメーター

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

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

戻り値

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

解説

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

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

HCURSOR hCursor;

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

CWinApp::LoadIcon

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

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

パラメーター

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

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

戻り値

成功した場合のアイコンへのハンドル。それ以外の場合は 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_ マニフェスト定数識別子。 WINDOWS.H のOCR_定数にアクセスするには、#include \<afxwin.h>する前に#define OEMRESOURCEが必要です。

戻り値

成功した場合のカーソルへのハンドル。それ以外の場合は 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。

解説

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

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_SIZENWSE左上と右下に両端が付いた 2 方向矢印

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

  • IDC_SIZEWE水平 2 方向矢印

  • IDC_SIZENS 縦向き 2 方向矢印

戻り値

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

解説

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

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。

解説

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

CWinApp::LoadStdProfileSettings

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

void LoadStdProfileSettings(UINT nMaxMRU = _AFX_MRU_COUNT);

パラメーター

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

解説

nMaxMRU が 0 の場合、MRU リストは保持されません。

CWinApp::m_bHelpMode

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

BOOL m_bHelpMode;

解説

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

CWinApp::m_dwRestartManagerSupportFlags

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

DWORD m_dwRestartManagerSupportFlags;

解説

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

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

CWinApp::m_eHelpType

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

AFX_HELP_TYPE m_eHelpType;

解説

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

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

  • アプリケーションのヘルプを WinHelp に設定するには、 SetHelpMode を呼び出し、 afxWinHelpを指定します。

CWinApp::m_hInstance

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

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 から WinMain に渡される lpCmdLine パラメーターに対応します。

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 から WinMain に渡される nCmdShow パラメーターに対応します。

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は、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は、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は、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は、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_USER/Software/LocalAppWizard-Generated/。

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

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

CWinApp::m_pszAppID

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

LPCTSTR m_pszAppID;

解説

CWinApp::OnContextHelp

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

afx_msg void OnContextHelp();

解説

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

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

CWinApp::OnDDECommand

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

virtual BOOL OnDDECommand(LPTSTR lpszCommand);

パラメーター

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

戻り値

コマンドが処理される場合は 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_SETUP コマンドを実装します。

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

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

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

Note

OnIdleの既定の実装では、メニュー項目やツール バー ボタンなどのコマンド ユーザー インターフェイス オブジェクトが更新され、内部データ構造のクリーンアップが実行されます。 したがって、OnIdleをオーバーライドする場合は、オーバーライドされたバージョンのlCountCWinApp::OnIdleを呼び出す必要があります。 まず、すべての基底クラスのアイドル処理を呼び出します (つまり、基底クラス 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 つであることを示します。FALSE は、ドキュメントが最新のファイルの 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 メンバー関数でProcessShellCommandParseCommandLineが呼び出されます。 コマンド ラインは、以下で説明するルートに従います。

  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

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

BOOL ProcessShellCommand(CCommandLineInfo& rCmdInfo);

パラメーター

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

戻り値

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

解説

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

  1. InitInstanceで作成されると、CCommandLineInfo オブジェクトがParseCommandLineに渡されます。

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

  3. ParseParamCCommandLineInfo オブジェクトを塗りつぶし、 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
フレームワークが例外をスローする原因となったウィンドウ メッセージに関する情報を含む 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 キーも追加されます。 既定では、このパラメーターは下位互換性のために FALSE です。

解説

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

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 は、アプリケーションのこのインスタンスが復旧コールバック関数を使用することを示します。FALSE は、そうでないことを示します。 フレームワークは、アプリケーションが予期せず終了したときに回復コールバック関数を呼び出します。 詳細については、「 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 は、再起動マネージャーが以前に開いているファイルを再度開く場合を示します。FALSE は、再起動マネージャーが実行しないことを示します。

CWinApp::RestartInstance

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

virtual BOOL CWinApp::RestartInstance();

戻り値

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

解説

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

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

CWinApp::RestoreAutosavedFilesAtRestart

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

virtual BOOL RestoreAutosavedFilesAtRestart() const;

戻り値

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

CWinApp::Run

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

virtual int Run();

戻り値

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

解説

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

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

CWinApp::RunAutomated

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

BOOL RunAutomated();

戻り値

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

解説

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

CWinApp::RunEmbedded

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

BOOL RunEmbedded();

戻り値

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

解説

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

CWinApp::SaveAllModified

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

virtual BOOL SaveAllModified();

戻り値

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

解説

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

CWinApp::SelectPrinter

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

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

パラメーター

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

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

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

解説

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

CWinApp::SetHelpMode

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

void SetHelpMode(AFX_HELP_TYPE eHelpType);

パラメーター

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

解説

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

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

CWinApp::SetRegistryKey

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

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

パラメーター

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

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

解説

この関数はm_pszRegistryKeyを設定し、CWinAppGetProfileIntGetProfileStringWriteProfileInt、およびWriteProfileStringメンバー関数によって使用されます。 この関数が呼び出された場合、最近使用された (MRU) ファイルの一覧もレジストリに格納されます。 通常、レジストリ キーは会社の名前です。 これは、HKEY_CURRENT_USER\Software\<company name>\<application name>\<section name>\<value name> の形式で格納されます。

CWinApp::SupportsApplicationRecovery

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

virtual BOOL SupportsApplicationRecovery() const;

戻り値

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

CWinApp::SupportsAutosaveAtInterval

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

virtual BOOL SupportsAutosaveAtInterval() const;

戻り値

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

CWinApp::SupportsAutosaveAtRestart

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

virtual BOOL SupportsAutosaveAtRestart() const;

戻り値

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

CWinApp::SupportsRestartManager

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

virtual BOOL SupportsRestartManager() const;

戻り値

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

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 パラメーターに与える影響については、Windows 関数の WinHelp を参照してください。

解説

フレームワークは、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 を返します。

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

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 を返します。

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

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 クラス
階層図
方法: 再起動マネージャーのサポートを追加する