Revision: 9881 https://osdn.net/projects/ttssh2/scm/svn/commits/9881 Author: zmatsuo Date: 2022-04-23 00:37:28 +0900 (Sat, 23 Apr 2022) Log Message: ----------- その他設定ダイアログをTera Termの中央に表示するようにした Modified Paths: -------------- trunk/teraterm/teraterm/addsetting.cpp trunk/teraterm/teraterm/addsetting.h -------------- next part -------------- Modified: trunk/teraterm/teraterm/addsetting.cpp =================================================================== --- trunk/teraterm/teraterm/addsetting.cpp 2022-04-22 15:16:06 UTC (rev 9880) +++ trunk/teraterm/teraterm/addsetting.cpp 2022-04-22 15:37:28 UTC (rev 9881) @@ -1725,6 +1725,30 @@ HINSTANCE CAddSettingPropSheetDlg::ghInstance; class CAddSettingPropSheetDlg *CAddSettingPropSheetDlg::gTTCPS; +LRESULT CALLBACK CAddSettingPropSheetDlg::WndProc(HWND dlg, UINT msg, WPARAM wParam, LPARAM lParam) +{ + switch(msg){ + case WM_INITDIALOG: + case WM_SHOWWINDOW: { + CenterWindow(dlg, m_hParentWnd); + break; + } + } + SetWindowLongPtrW(dlg, GWLP_WNDPROC, m_OrgProc); + SetWindowLongPtrW(dlg, GWLP_USERDATA, m_OrgUserData); + LRESULT result = CallWindowProcW((WNDPROC)m_OrgProc, dlg, msg, wParam, lParam); + m_OrgProc = SetWindowLongPtrW(dlg, GWLP_WNDPROC, (LONG_PTR)WndProcStatic); + m_OrgUserData = SetWindowLongPtrW(dlg, GWLP_USERDATA, (LONG_PTR)this); + + return result; +} + +LRESULT CALLBACK CAddSettingPropSheetDlg::WndProcStatic(HWND dlg, UINT msg, WPARAM wParam, LPARAM lParam) +{ + CAddSettingPropSheetDlg *self = (CAddSettingPropSheetDlg *)GetWindowLongPtr(dlg, GWLP_USERDATA); + return self->WndProc(dlg, msg, wParam, lParam); +} + int CALLBACK CAddSettingPropSheetDlg::PropSheetProc(HWND hWnd, UINT msg, LPARAM lp) { switch (msg) { @@ -1755,6 +1779,8 @@ self->m_hWnd = hWnd; SetDlgTexts(hWnd, TextInfos, _countof(TextInfos), ts.UILanguageFile); CenterWindow(hWnd, self->m_hParentWnd); + self->m_OrgProc = SetWindowLongPtrW(hWnd, GWLP_WNDPROC, (LONG_PTR)WndProcStatic); + self->m_OrgUserData = SetWindowLongPtrW(hWnd, GWLP_USERDATA, (LONG_PTR)self); break; } } Modified: trunk/teraterm/teraterm/addsetting.h =================================================================== --- trunk/teraterm/teraterm/addsetting.h 2022-04-22 15:16:06 UTC (rev 9880) +++ trunk/teraterm/teraterm/addsetting.h 2022-04-22 15:37:28 UTC (rev 9881) @@ -138,8 +138,10 @@ private: static int CALLBACK PropSheetProc(HWND hWnd, UINT msg, LPARAM lParam); + static LRESULT CALLBACK WndProcStatic(HWND dlg, UINT msg, WPARAM wParam, LPARAM lParam); static HINSTANCE ghInstance; static class CAddSettingPropSheetDlg *gTTCPS; + LRESULT CALLBACK WndProc(HWND dlg, UINT msg, WPARAM wParam, LPARAM lParam); PROPSHEETHEADERW m_psh; HWND m_hWnd; @@ -151,4 +153,6 @@ int m_PageCountCPP; TTCPropertyPage *m_Page[7]; + LONG_PTR m_OrgProc; + LONG_PTR m_OrgUserData; };