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
データ メンバーが存在しなくなりました。 アプリケーションの別のインスタンスが実行されているかどうかを確認するには、名前付きミューテックスを使用します。 ミューテックスを開く際に失敗した場合、アプリケーションの他のインスタンスは実行されません。
継承階層
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
このメンバー関数は、 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、それ以外の場合は 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 の LoadIcon の lpIconName パラメーターを参照してください。
戻り値
成功した場合のアイコンへのハンドル。それ以外の場合は 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 にリセットされます。 この数に基づいて、異なるアイドル ルーチンを呼び出すことができます。
アイドル ループ処理の概要を次に示します。
Microsoft Foundation クラス ライブラリのメッセージ ループがメッセージ キューをチェックし、保留中のメッセージが見つからない場合は、アプリケーション オブジェクトの
OnIdle
を呼び出し、 lCount 引数として 0 を指定します。OnIdle
は何らかの処理を実行し、0 以外の値を返して、さらに処理を実行するために再度呼び出す必要があることを示します。メッセージ ループは、メッセージ キューをもう一度チェックします。 保留中のメッセージがない場合は、
OnIdle
を再度呼び出し、 lCount 引数をインクリメントします。最終的に、
OnIdle
はアイドル状態のすべてのタスクの処理を完了し、0 を返します。 これにより、次のメッセージがメッセージ キューから受信されるまで、OnIdle
の呼び出しを停止するようにメッセージ ループに指示されます。この時点で、アイドル サイクルが再開され、引数が 0 に設定されます。
OnIdle
が戻るまでアプリケーションでユーザー入力を処理できないため、OnIdle
中に長いタスクを実行しないでください。
Note
OnIdle
の既定の実装では、メニュー項目やツール バー ボタンなどのコマンド ユーザー インターフェイス オブジェクトが更新され、内部データ構造のクリーンアップが実行されます。 したがって、OnIdle
をオーバーライドする場合は、オーバーライドされたバージョンのlCount
でCWinApp::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 メンバー関数でProcessShellCommand
とParseCommandLine
が呼び出されます。 コマンド ラインは、以下で説明するルートに従います。
InitInstance
で作成されると、CCommandLineInfo
オブジェクトがParseCommandLine
に渡されます。ParseCommandLine
その後、パラメーターごとに 1 回、CCommandLineInfo::ParseParam
を繰り返し呼び出します。ParseParam
は、CCommandLineInfo
オブジェクトを塗りつぶし、 ProcessShellCommand に渡します。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
メンバー関数で ProcessShellCommand
と ParseCommandLine が呼び出されます。 コマンド ラインは、以下で説明するルートに従います。
InitInstance
で作成されると、CCommandLineInfo
オブジェクトがParseCommandLine
に渡されます。ParseCommandLine
次に、 CCommandLineInfo::P arseParam をパラメーターごとに 1 回繰り返し呼び出します。ParseParam
はCCommandLineInfo
オブジェクトを塗りつぶし、ProcessShellCommand
に渡します。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 メッセージを取得してディスパッチします。 アプリケーションのメッセージ キューに現在メッセージが含まれている場合は、アイドル時間処理を実行するためにRun
OnIdle を呼び出します。 受信メッセージは、特別な処理のために 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
以前に選択したプリンターを解放します。
解説
hDevMode と hDevNames の両方が NULL の場合、SelectPrinter
は現在の既定のプリンターを使用します。
CWinApp::SetHelpMode
アプリケーションのヘルプの種類を設定します。
void SetHelpMode(AFX_HELP_TYPE eHelpType);
パラメーター
eHelpType
使用するヘルプの種類を指定します。 詳細については、「 CWinApp::m_eHelpType 」を参照してください。
解説
アプリケーションのヘルプの種類を設定します。
アプリケーションのヘルプの種類を HTMLHelp に設定するには、 EnableHTMLHelp を呼び出します。 EnableHTMLHelp
を呼び出したら、アプリケーションで HTMLHelp をヘルプ アプリケーションとして使用する必要があります。 WinHelp を使用するように変更する場合は、 SetHelpMode
を呼び出し、 eHelpType を afxWinHelp
に設定できます。
CWinApp::SetRegistryKey
アプリケーション設定を INI ファイルではなくレジストリに格納します。
void SetRegistryKey(LPCTSTR lpszRegistryKey);
void SetRegistryKey(UINT nIDRegistryKey);
パラメーター
lpszRegistryKey
キーの名前を含む文字列へのポインター。
nIDRegistryKey
レジストリ キーの名前を含む文字列リソースの ID。
解説
この関数はm_pszRegistryKeyを設定し、CWinApp
のGetProfileInt
、GetProfileString
、WriteProfileInt
、および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 アプリケーションの任意の関数から WriteProfileBinary
と GetProfileBinary
を使用する方法を示します。
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 アプリケーションの任意の関数から WriteProfileString
、 WriteProfileInt
、 GetProfileString
、および 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 を指定します。