[ttssh2-commit] [9881] その他設定ダイアログをTera Termの中央に表示するようにした

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2022年 4月 23日 (土) 00:37:28 JST


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;
 };


ttssh2-commit メーリングリストの案内
Back to archive index