#pragma once #include "afxdialogex.h" #include #include // CDlgLang 对话框 class CDlgLang : public CDialogEx { DECLARE_DYNAMIC(CDlgLang) public: CDlgLang(CWnd* pParent = nullptr); // 标准构造函数 virtual ~CDlgLang(); // 对话框数据 enum { IDD = IDD_LANGUAGE }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 virtual BOOL OnInitDialog(); bool select_code_page(int cp); void add_2_list(void* lang_list, int id, bool unic); int insert_item_2_list(const wchar_t* str, uint32_t id); int find_hz_ID(const wchar_t* hz); int find_list_item_by_ID(int id); void on_hz_pak_initialized(bool success); static bool find_repeat_in_vector(uint32_t val, void* param); static bool find_repeat_in_list(uint32_t val, void* param); DECLARE_MESSAGE_MAP() public: afx_msg void OnBnClickedButtonInitId(); afx_msg void OnCbnSelchangeLanguage(); afx_msg void OnNMDblclkList1(NMHDR* pNMHDR, LRESULT* pResult); CComboBox lang_; CListCtrl list_; int cur_cp_; typedef struct _base_map { int id; std::wstring hz; bool operator==(int i) { return id == i; } bool operator==(const wchar_t* t) { return hz == t; } }HZMAP; std::vector hz_; afx_msg void OnBnClickedButtonSave(); afx_msg void OnBnClickedButtonAdd(); afx_msg void OnBnClickedButtonAddFile(); afx_msg void OnBnClickedButtonSaveExport(); afx_msg void OnBnClickedButtonBatchAdd(); };