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..e8f2ef5363 100644 --- a/sakura_core/util/MessageBoxF.cpp +++ b/sakura_core/util/MessageBoxF.cpp @@ -36,6 +36,7 @@ #include #include #include "MessageBoxF.h" +#include "_main/CProcess.h" #include "window/CEditWnd.h" #include "CSelectLang.h" #include "config/app_constants.h" @@ -74,14 +75,24 @@ int Wrap_MessageBox(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType) ); } -HWND GetMessageBoxOwner(HWND hwndOwner) +/*! + * メッセージボックスのオーナーウインドウを取得します。 + * + * @param [in,opt] hWndOwner オーナーウインドウ + * @returns メッセージボックスのオーナーウインドウ + * @retval 指定したオーナーウインドウが不正値で、プロセスのメインウインドウが作成済みの場合 + * @retval hWndOwner 指定したオーナーウインドウが適正値で、メインウインドウが未作成の場合 + */ +HWND GetMessageBoxOwner(HWND hWndOwner) { - if(hwndOwner==NULL && g_pcEditWnd){ - return g_pcEditWnd->GetHwnd(); - } - else{ - return hwndOwner; + if( !hWndOwner || !::IsWindow(hWndOwner) ) + { + if( const auto pcProcess = CProcess::getInstance() ) + { + hWndOwner = pcProcess->GetMainWindow(); + } } + 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;