diff --git a/sakura_core/_main/global.cpp b/sakura_core/_main/global.cpp index e9fccb355b..fbc095f8ee 100644 --- a/sakura_core/_main/global.cpp +++ b/sakura_core/_main/global.cpp @@ -46,9 +46,6 @@ LPCWSTR GetAppName( void ) return pcProcess->GetAppName(); } -//2007.10.02 kobake CEditWndのインスタンスへのポインタをここに保存しておく -CEditWnd* g_pcEditWnd = NULL; - /*! 選択領域描画用パラメータ */ const COLORREF SELECTEDAREA_RGB = RGB( 255, 255, 255 ); const int SELECTEDAREA_ROP2 = R2_XORPEN; diff --git a/sakura_core/_main/global.h b/sakura_core/_main/global.h index 479b7be128..cb4681d716 100644 --- a/sakura_core/_main/global.h +++ b/sakura_core/_main/global.h @@ -173,9 +173,5 @@ struct SSearchOption{ bool operator != (const SSearchOption& rhs) const noexcept; }; -//2007.10.02 kobake CEditWndのインスタンスへのポインタをここに保存しておく -class CEditWnd; -extern CEditWnd* g_pcEditWnd; - HINSTANCE G_AppInstance(); #endif /* SAKURA_GLOBAL_BD124BE7_A850_41F3_9F5D_8A4F0E45A4C9_H_ */ diff --git a/sakura_core/util/MessageBoxF.cpp b/sakura_core/util/MessageBoxF.cpp index 0ac4e290e3..14128f141c 100644 --- a/sakura_core/util/MessageBoxF.cpp +++ b/sakura_core/util/MessageBoxF.cpp @@ -74,14 +74,24 @@ int Wrap_MessageBox(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType) ); } -HWND GetMessageBoxOwner(HWND hwndOwner) +/*! + * メッセージボックスのオーナーウインドウを取得します。 + * + * @param [in,opt] hWndOwner オーナーウインドウ + * @returns メッセージボックスのオーナーウインドウ + * @retval CEditWnd().GetHwnd() 指定したオーナーウインドウが不正値で、メインウインドウが作成済みの場合 + * @retval hWndOwner 指定したオーナーウインドウが適正値で、メインウインドウが未作成の場合 + */ +HWND GetMessageBoxOwner(HWND hWndOwner) { - if(hwndOwner==NULL && g_pcEditWnd){ - return g_pcEditWnd->GetHwnd(); - } - else{ - return hwndOwner; + if (!hWndOwner || !::IsWindow(hWndOwner)) + { + if (auto pcEditWnd = CEditWnd::getInstance()) + { + hWndOwner = pcEditWnd->GetHwnd(); + } } + return hWndOwner; } /*! diff --git a/sakura_core/window/CEditWnd.cpp b/sakura_core/window/CEditWnd.cpp index 425a7d07bc..57e896b798 100644 --- a/sakura_core/window/CEditWnd.cpp +++ b/sakura_core/window/CEditWnd.cpp @@ -233,13 +233,10 @@ CEditWnd::CEditWnd() , m_IconClicked(icNone) //by 鬼(2) , m_nSelectCountMode( SELECT_COUNT_TOGGLE ) //文字カウント方法の初期値はSELECT_COUNT_TOGGLE→共通設定に従う { - g_pcEditWnd=this; } CEditWnd::~CEditWnd() { - g_pcEditWnd=NULL; - delete m_pPrintPreview; m_pPrintPreview = NULL;