#pragma once #include "CUserManager2.h" #include #include class CUserManager2Dlg : public CDialogEx { DECLARE_DYNAMIC(CUserManager2Dlg) public: CUserManager2Dlg(CWnd* pParent = nullptr); virtual ~CUserManager2Dlg(); #ifdef AFX_DESIGN_TIME enum { IDD = IDD_DIALOG_USER_MANAGER2 }; #endif protected: virtual void DoDataExchange(CDataExchange* pDX); DECLARE_MESSAGE_MAP() public: virtual BOOL OnInitDialog(); afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnBnClickedButtonAdd(); afx_msg void OnBnClickedButtonEdit(); afx_msg void OnBnClickedButtonDel(); afx_msg void OnBnClickedButtonResetPwd(); afx_msg void OnBnClickedButtonEnable(); afx_msg void OnLvnItemchangedUsers(NMHDR* pNMHDR, LRESULT* pResult); private: CListCtrl m_listUsers; std::vector m_users; void InitList(); void RefreshUserList(); void UpdateButtonState(); int GetSelectedIndex() const; const CUserManager2::UserInfo* GetSelectedUser() const; std::wstring ToWString(const CString& text) const; void ShowErrorMessage(const CString& action, int code); bool IsCurrentUser(const CUserManager2::UserInfo& info) const; };