From 89bcc7791c48d8bcf8e124e56849e44563f8097c Mon Sep 17 00:00:00 2001
From: LAPTOP-T815PCOQ\25526 <mr.liuyang@126.com>
Date: 星期一, 23 十二月 2024 18:34:18 +0800
Subject: [PATCH] 1.对话框基类加载资源库、卸载资源库 2. 报警模块的界面添加分页功能

---
 SourceCode/Bond/BondEq/CBaseDlg.h |   47 ++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 40 insertions(+), 7 deletions(-)

diff --git a/SourceCode/Bond/BondEq/CBaseDlg.h b/SourceCode/Bond/BondEq/CBaseDlg.h
index 053cd99..22bd266 100644
--- a/SourceCode/Bond/BondEq/CBaseDlg.h
+++ b/SourceCode/Bond/BondEq/CBaseDlg.h
@@ -1,29 +1,62 @@
 #pragma once
+#include <memory>
+#include <unordered_map>
+
+enum class ThemeType {
+	Light,  // 浅色主题
+	Dark    // 深色主题
+};
+
+struct Theme {
+	COLORREF backgroundColor;
+	COLORREF textColor;
+	COLORREF buttonColor;
+	COLORREF borderColor;
+};
 
 class CBaseDlg : public CDialogEx
 {
 	DECLARE_DYNAMIC(CBaseDlg)
 
 public:
-	CBaseDlg(UINT id, CWnd* pPage);				// 标准构造函数
+	CBaseDlg(UINT nID, CWnd* pPage);			// 标准构造函数
 	virtual ~CBaseDlg();						// 析构函数
 
-	CFont* GetOrCreateFont(int nFontSize);		// 获取或创建字体
-	void SetDefaultFont();						// 设置默认字体
+	// 主题管理
+	void SwitchTheme(ThemeType enThemeType);			// 切换主题
+
+	// 资源管理
+	void LoadResourceLibrary(const CString& strLanguage);			// 加载资源库
+	void UnloadResourceLibrary();									// 卸载资源库
+
+	// 字体管理
+	CFont* GetOrCreateFont(int nFontSize);			// 获取或创建字体
+	void SetDefaultFont();							// 设置默认字体
+
+	// 动态控件管理
+	BOOL AddControl(UINT nCtrlID, CWnd* pControl);					// 添加控件
+	BOOL RemoveControl(UINT nCtrlID);								// 移除控件
+	BOOL UpdateControlText(UINT nCtrlID, const CString& strText);   // 更新控件文本
+	CWnd* GetControl(UINT nCtrlID);									// 获取控件
 
 private:
 	void AdjustControls(float dScaleX, float dScaleY);				// 调整控件大小
 	void AdjustControlFont(CWnd* pWnd, int nWidth, int nHeight);	// 调整控件字体
 
 private:
-	int m_nInitialWidth;						// 对话框初始宽度
-	int m_nInitialHeight;						// 对话框初始高度	
-	std::map<int, CFont*> m_mapFonts;			// 控件字体
-	std::map<int, CRect> m_mapCtrlLayouts;		// 控件布局
+	UINT m_nID;													// 对话框ID
+	CWnd* m_pParent;											// 父窗口
+	bool m_bResizing;											// 控件是否正在调整大小
+	int m_nInitialWidth;										// 对话框初始宽度
+	int m_nInitialHeight;										// 对话框初始高度	
+	std::unordered_map<int, CRect> m_mapCtrlLayouts;			// 控件布局
+	std::map<UINT, std::unique_ptr<CWnd>> m_mapControls;		// 控件集合
+	std::unordered_map<int, std::shared_ptr<CFont>> m_mapFonts;	// 控件字体
 
 	DECLARE_MESSAGE_MAP()
 public:
 	virtual BOOL OnInitDialog();
 	afx_msg void OnSize(UINT nType, int cx, int cy);
 	afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI);
+	afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
 };
\ No newline at end of file

--
Gitblit v1.9.3