From e8a27bb203fe2aff70390a5eca002d7438da9b0f Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期三, 22 十月 2025 14:24:34 +0800
Subject: [PATCH] Merge branch 'clh' into liuyang
---
SourceCode/Bond/BondEq/View/UserManagerDlg.cpp | 173 +++------------------------------------------------------
1 files changed, 11 insertions(+), 162 deletions(-)
diff --git a/SourceCode/Bond/BondEq/View/UserManagerDlg.cpp b/SourceCode/Bond/BondEq/View/UserManagerDlg.cpp
index 50136c1..a3de9ff 100644
--- a/SourceCode/Bond/BondEq/View/UserManagerDlg.cpp
+++ b/SourceCode/Bond/BondEq/View/UserManagerDlg.cpp
@@ -8,36 +8,27 @@
#include "InputDialog.h"
#include "NewCellTypes/GridCellCombo.h"
#include "NewCellTypes/GridCellNumeric.h"
-
#include <set>
const COLORREF CURR_USER_BK_COLOR = RGB(0, 255, 0);
// CUserManagerDlg 瀵硅瘽妗�
-IMPLEMENT_DYNAMIC(CUserManagerDlg, CDialogEx)
+IMPLEMENT_DYNAMIC(CUserManagerDlg, CBaseDlg)
CUserManagerDlg::CUserManagerDlg(CWnd* pParent /*=nullptr*/)
- : CDialogEx(IDD_DIALOG_USER_MANAGER, pParent)
+ : CBaseDlg(IDD_DIALOG_USER_MANAGER, pParent)
{
-
}
CUserManagerDlg::~CUserManagerDlg()
{
- for (auto& pair : m_mapFonts) {
- if (pair.second) {
- pair.second->DeleteObject();
- delete pair.second;
- }
- }
- m_mapFonts.clear();
}
void CUserManagerDlg::DoDataExchange(CDataExchange* pDX)
{
DDX_Control(pDX, IDC_CUSTOM_USER, m_gridUserManager);
- CDialogEx::DoDataExchange(pDX);
+ CBaseDlg::DoDataExchange(pDX);
}
void CUserManagerDlg::InitUserManager()
@@ -118,7 +109,7 @@
int nCurrNameRow = -1;
std::vector<std::vector<std::string>> usersData = userManager.getUsers();
if (!usersData.empty()) {
- m_gridUserManager.SetRowCount(usersData.size() + 1);
+ m_gridUserManager.SetRowCount((int)usersData.size() + 1);
for (int i = 0; i < usersData.size(); i++) {
int nRowIdx = i + 1;
@@ -349,117 +340,7 @@
return false;
}
-void CUserManagerDlg::SetDefaultFont()
-{
- CFont* defaultFont = nullptr;
-
- // 濡傛灉瀛椾綋绠$悊瀹瑰櫒涓湁榛樿澶у皬锛堝 12锛夌殑瀛椾綋锛岀洿鎺ヤ娇鐢�
- auto it = m_mapFonts.find(12);
- if (it != m_mapFonts.end()) {
- defaultFont = it->second;
- }
- else {
- // 鍒涘缓榛樿瀛椾綋
- defaultFont = new CFont();
- LOGFONT logFont = { 0 };
- _tcscpy_s(logFont.lfFaceName, _T("Segoe UI"));
- logFont.lfHeight = -12;
- logFont.lfQuality = CLEARTYPE_QUALITY;
- defaultFont->CreateFontIndirect(&logFont);
- m_mapFonts[12] = defaultFont; // 瀛樺偍鍒板瓧浣撶鐞嗗鍣�
- }
-
- // 閬嶅巻鎵�鏈夋帶浠讹紝搴旂敤榛樿瀛椾綋
- CWnd* pWnd = GetWindow(GW_CHILD);
- while (pWnd) {
- // 璺宠繃鐗规畩鎺т欢锛堝 MFCGridCtrl锛�
- TCHAR szClassName[256];
- GetClassName(pWnd->m_hWnd, szClassName, sizeof(szClassName));
- if (_tcsicmp(szClassName, _T("MFCGridCtrl")) == 0) {
- pWnd = pWnd->GetNextWindow();
- continue;
- }
-
- pWnd->SetFont(defaultFont, TRUE);
- pWnd = pWnd->GetNextWindow();
- }
-}
-
-void CUserManagerDlg::AdjustControls(int nWidth, int nHeight)
-{
- CWnd* pWnd = GetWindow(GW_CHILD);
- while (pWnd) {
- UINT nCtrlID = pWnd->GetDlgCtrlID();
-
- CRect ctrlRect;
- pWnd->GetWindowRect(&ctrlRect);
- ScreenToClient(&ctrlRect);
-
- // 璁$畻鎺т欢鐨勬柊浣嶇疆鍜屽ぇ灏忥紝鎸夋瘮渚嬭皟鏁�
- int newX = (int)(ctrlRect.left * (nWidth / (float)m_nInitialWidth));
- int newY = (int)(ctrlRect.top * (nHeight / (float)m_nInitialHeight));
- int newWidth = (int)(ctrlRect.Width() * (nWidth / (float)m_nInitialWidth));
- int newHeight = (int)(ctrlRect.Height() * (nHeight / (float)m_nInitialHeight));
-
- TCHAR szClassName[256];
- GetClassName(pWnd->m_hWnd, szClassName, sizeof(szClassName));
-
- if (_tcsicmp(szClassName, _T("ComboBox")) == 0) {
- CComboBox* pComboBox = (CComboBox*)pWnd;
- pComboBox->SetItemHeight(-1, nHeight); // -1 琛ㄧず鎵�鏈夐」鐨勯珮搴�
- }
-
- if (_tcsicmp(szClassName, _T("MFCGridCtrl")) == 0) {
- CGridCtrl* pGridCtrl = (CGridCtrl*)pWnd;
- pGridCtrl->SetDefCellHeight(newHeight / 21);
- pGridCtrl->ExpandColumnsToFit(TRUE);
- pGridCtrl->Invalidate();
- }
-
- pWnd->MoveWindow(newX, newY, newWidth, newHeight);
- AdjustControlFont(pWnd, newWidth, newHeight);
-
- // 鑾峰彇涓嬩竴涓帶浠�
- pWnd = pWnd->GetNextWindow();
- }
-}
-
-void CUserManagerDlg::AdjustControlFont(CWnd* pWnd, int nWidth, int nHeight)
-{
- TCHAR szClassName[256];
- GetClassName(pWnd->m_hWnd, szClassName, sizeof(szClassName));
-
- // 璺宠繃鐗规畩鎺т欢锛堝 MFCGridCtrl锛�
- if (_tcsicmp(szClassName, _T("MFCGridCtrl")) == 0) {
- return;
- }
-
- // 鏍规嵁鎺т欢楂樺害鍔ㄦ�佽皟鏁村瓧浣撳ぇ灏�
- int fontSize = nHeight / 2;
- if (fontSize < 8) fontSize = 8;
-
- // 妫�鏌ュ瓧浣撴槸鍚﹀凡缁忓瓨鍦�
- auto it = m_mapFonts.find(fontSize);
- if (it == m_mapFonts.end()) {
- // 鍔ㄦ�佸垱寤烘柊瀛椾綋
- CFont* newFont = new CFont();
- LOGFONT logFont = { 0 };
- _tcscpy_s(logFont.lfFaceName, _T("Segoe UI"));
- logFont.lfHeight = -fontSize;
- logFont.lfQuality = CLEARTYPE_QUALITY; // 鍚敤 ClearType 鎶楅敮榻�
- newFont->CreateFontIndirect(&logFont);
-
- // 瀛樺偍鍒板瓧浣撶鐞嗗鍣ㄤ腑
- m_mapFonts[fontSize] = newFont;
- it = m_mapFonts.find(fontSize);
- }
-
- pWnd->SetFont(it->second);
- pWnd->Invalidate(); // 鍒锋柊鎺т欢鏄剧ず
-}
-
-BEGIN_MESSAGE_MAP(CUserManagerDlg, CDialogEx)
- ON_WM_SIZE()
+BEGIN_MESSAGE_MAP(CUserManagerDlg, CBaseDlg)
ON_NOTIFY(GVN_COMBOSELCHANGE, IDC_CUSTOM_USER, &CUserManagerDlg::OnGridComboSelChange)
ON_BN_CLICKED(IDC_BUTTON_ADD, &CUserManagerDlg::OnBnClickedButtonAdd)
ON_BN_CLICKED(IDC_BUTTON_DEL, &CUserManagerDlg::OnBnClickedButtonDel)
@@ -473,52 +354,16 @@
BOOL CUserManagerDlg::OnInitDialog()
{
- CDialogEx::OnInitDialog();
+ CBaseDlg::OnInitDialog();
// TODO: 鍦ㄦ娣诲姞棰濆鐨勫垵濮嬪寲
- CRect screenRect, dlgRect, clientRect;
SetWindowText(_T("鐢ㄦ埛绠$悊"));
- SystemParametersInfo(SPI_GETWORKAREA, 0, &screenRect, 0);
-
- // 璁剧疆榛樿瀛椾綋
- SetDefaultFont();
-
- GetClientRect(&clientRect);
- m_nInitialWidth = clientRect.Width();
- m_nInitialHeight = clientRect.Height();
-
- GetWindowRect(&dlgRect);
- int dlgWidth = dlgRect.Width() * 3;
- int dlgHeight = dlgRect.Height() * 3;
-
- if (dlgWidth > screenRect.Width()) {
- dlgWidth = screenRect.Width();
- }
- if (dlgHeight > screenRect.Height()) {
- dlgHeight = screenRect.Height();
- }
-
- int centerX = screenRect.left + (screenRect.Width() - dlgWidth) / 2;
- int centerY = screenRect.top + (screenRect.Height() - dlgHeight) / 2;
- MoveWindow(centerX, centerY, dlgWidth, dlgHeight);
// 鍒濆鍖栫敤鎴风鐞嗚〃鏍�
InitUserManager();
return TRUE; // return TRUE unless you set the focus to a control
// 寮傚父: OCX 灞炴�ч〉搴旇繑鍥� FALSE
-}
-
-void CUserManagerDlg::OnSize(UINT nType, int cx, int cy)
-{
- CDialogEx::OnSize(nType, cx, cy);
-
- // TODO: 鍦ㄦ澶勬坊鍔犳秷鎭鐞嗙▼搴忎唬鐮�
- CRect rect;
- GetClientRect(&rect);
-
- // 閬嶅巻瀵硅瘽妗嗕腑鐨勬墍鏈夋帶浠�
- AdjustControls(rect.Width(), rect.Height());
}
void CUserManagerDlg::OnGridComboSelChange(NMHDR* pNMHDR, LRESULT* pResult)
@@ -550,11 +395,13 @@
*pResult = 0;
}
+
void CUserManagerDlg::OnBnClickedButtonAdd()
{
// TODO: 鍦ㄦ娣诲姞鎺т欢閫氱煡澶勭悊绋嬪簭浠g爜
AddRow(&m_gridUserManager);
}
+
void CUserManagerDlg::OnBnClickedButtonInsert()
{
@@ -619,11 +466,13 @@
m_gridUserManager.UpdateWindow();
}
+
void CUserManagerDlg::OnBnClickedButtonDel()
{
// TODO: 鍦ㄦ娣诲姞鎺т欢閫氱煡澶勭悊绋嬪簭浠g爜
DeleteSelectedRow(&m_gridUserManager);
}
+
void CUserManagerDlg::OnBnClickedOk()
{
@@ -691,5 +540,5 @@
}
userManager.setUsers(vecData);
- CDialogEx::OnOK();
+ CBaseDlg::OnOK();
}
--
Gitblit v1.9.3