#pragma once #include "afxdialogex.h" #include "GridCtrl.h" // CUserManagerDlg 对话框 class CUserManagerDlg : public CDialogEx { DECLARE_DYNAMIC(CUserManagerDlg) public: CUserManagerDlg(CWnd* pParent = nullptr); // 标准构造函数 virtual ~CUserManagerDlg(); // 对话框数据 #ifdef AFX_DESIGN_TIME enum { IDD = IDD_DIALOG_USER_MANAGER }; #endif private: void InitUserManager(); void FillUserManager(); void AddRow(CGridCtrl* pGridCtrl); void DeleteSelectedRow(CGridCtrl* pGridCtrl); bool IsUsernameDuplicate(const CString& username); CFont* GetOrCreateFont(int nFontSize); void SetDefaultFont(); void AdjustControls(float dScaleX, float dScaleY); void AdjustControlFont(CWnd* pWnd, int nWidth, int nHeight); private: int m_nInitialWidth; int m_nInitialHeight; std::map m_mapCtrlLayouts; std::map m_mapFonts; std::map m_mapRoleDescriptions; private: CGridCtrl m_gridUserManager; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 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 void OnGridComboSelChange(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnBnClickedButtonAdd(); afx_msg void OnBnClickedButtonInsert(); afx_msg void OnBnClickedButtonDel(); afx_msg void OnBnClickedOk(); };