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