TNB Library
公開メンバ関数 | 限定公開メンバ関数 | 全メンバ一覧
COnlyWindowChecker クラス

オンリーウィンドウチェッカー. [詳解]

#include <TnbOnlyWindowChecker.h>

+ COnlyWindowChecker の継承関係図

公開メンバ関数

 COnlyWindowChecker (LPCTSTR lpszUniquelyText)
 コンストラクタ. [詳解]
 
bool IsOnly (HWND hWnd)
 [確認] チェック. [詳解]
 
 ~COnlyWindowChecker (void)
 デストラクタ [詳解]
 

限定公開メンバ関数

virtual void OnFound (HWND hWnd)
 [通知] 同じウィンドウ発見. [詳解]
 

詳解

オンリーウィンドウチェッカー.

アプリケーションの多重起動防止に使用します。
覚え書き
2つ目の起動かチェックし、2つ目なら、1つ目のアプリをアクティブにしてタイトルバーを点滅させます (この動きは OnFound() をオーバーライドすることで変更可能です)。
使用例
BOOL CMainDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// 多重起動チェック
static COnlyWindowChecker s_owc(_T("TnbSampleApp.2011.10.12")); //static にする
if ( s_owc.IsOnly(GetSafeHwnd()) )
{
EndDialog(true);
return TRUE;
}
// "バージョン情報..." メニュー項目をシステム メニューへ追加します。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
;
;
COnlyWindowChecker(LPCTSTR lpszUniquelyText)
コンストラクタ.
※ static 宣言せず、 COnlyWindowChecker のインスタンスを CMainDlg のメンバにしてもよい。
必要ファイル
TnbOnlyWindowChecker.h
日付
11/10/12 新規作成。

TnbOnlyWindowChecker.h59 行目に定義があります。

構築子と解体子

◆ ~COnlyWindowChecker()

~COnlyWindowChecker ( void  )

デストラクタ

TnbOnlyWindowChecker.h64 行目に定義があります。

◆ COnlyWindowChecker()

COnlyWindowChecker ( LPCTSTR  lpszUniquelyText)

コンストラクタ.

引数
lpszUniquelyText識別用のユニークな文字列.

TnbOnlyWindowChecker.h73 行目に定義があります。

関数詳解

◆ IsOnly()

bool IsOnly ( HWND  hWnd)

[確認] チェック.

同じウィンドウがあるか、チェックします。

引数
hWnd自分のウィンドウハンドル
戻り値
trueあった。即時終了する必要あり。
falseなかった。
例外
CInvalidParamException設定が異常。 hWnd が正しくないかコンストラクタでユニーク文字列が正しく指定されていないか。

TnbOnlyWindowChecker.h85 行目に定義があります。

◆ OnFound()

virtual void OnFound ( HWND  hWnd)
protectedvirtual

[通知] 同じウィンドウ発見.

覚え書き
本メソッドでは、ウィンドウをアクティブにし、3回キャプションを点滅させます。
引数
hWndウィンドウハンドル

TnbOnlyWindowChecker.h113 行目に定義があります。