#if !defined(AFX_FINDANDREPLACEDLG_H__61197F0C_F0E2_4E59_8B06_DE86BAB14212__INCLUDED_) #define AFX_FINDANDREPLACEDLG_H__61197F0C_F0E2_4E59_8B06_DE86BAB14212__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // FindAndReplaceDlg.h : header file #include "resource.h" #include "adui.h" #include "acui.h" #include "FindParser.h" #include "FindAndReplaceUtil.h" // Zyu add on 100921,导入XML相关库 #include "msxml6.tlh" ////////////////////////////////////////////////////////////////////////// // Zyu add on 100925,关联XML和表格的类,用于读写文字类型的xml文件 class CTextTypeFileReader { public: CTextTypeFileReader(); virtual ~CTextTypeFileReader(); // 设置xml文件位置 void SetFilePath(LPCTSTR pszFilePath); // 设置xml文件关联的列表控件 void SetListCtrl(CListCtrl *pCmbCtrl); // 初始化 virtual bool Init(); // 保存列表控件内容到xml文件 virtual bool SaveToXML(); // 读取xml文件内容到列表 virtual bool LoadToCmbCtrl(); private: CListCtrl *m_pLstCtrl; // 列表控件 CString m_sFilePath; // xml文件路径 MSXML2::IXMLDOMDocumentPtr m_pDoc; // 文档指针 }; ////////////////////////////////////////////////////////////////////////// // CSymDefDlg 对话框 // Zyu add on 100925,通配符定义对话框 class CSymDefDlg : public CModelessDialog { DECLARE_DYNAMIC(CSymDefDlg) public: CSymDefDlg(CWnd* pParent = NULL); // 标准构造函数 virtual ~CSymDefDlg(); BOOL OnInitDialog(); // 对话框数据 enum { IDD = IDD_DLG_SYMDEF }; protected: DECLARE_MESSAGE_MAP() }; ////////////////////////////////////////////////////////////////////////// #define MAXTEXTNUM 20 class CFindAndReplaceDlg : public WGroupDlg { public: CFindAndReplaceDlg(CWnd* pParent = NULL); // standard constructor //{{AFX_DATA(CFindAndReplaceDlg) enum { IDD = IDD_FINDANDREPLACE }; //}}AFX_DATA //{{AFX_VIRTUAL(CFindAndReplaceDlg) public: virtual BOOL PreTranslateMessage(MSG* pMsg); protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL protected: // Generated message map functions //{{AFX_MSG(CFindAndReplaceDlg) virtual BOOL OnInitDialog(); afx_msg void OnButtonFind(); afx_msg void OnButtonReplace(); afx_msg void OnButtonReplaceall(); afx_msg void OnButtonSelect(); afx_msg void OnBnClickedBtnFind(); afx_msg void OnBnClickedBtnReplace(); afx_msg void OnBnClickedBtnMarkall(); afx_msg void OnBnClickedBtnUnmarkall(); afx_msg void OnBnClickedBtnWildcards(); afx_msg void OnCbnEditchangeComboFindtexts(); afx_msg void OnCbnKillfocusComboFindtexts(); afx_msg void OnCbnKillfocusComboReplacetext(); afx_msg void OnCbnKillfocusCmbPrefix(); afx_msg void OnCbnKillfocusCmbSuffix(); afx_msg void OnCbnKillfocusCmbIncrement(); afx_msg void OnCbnSelchangeComboFindtexts(); afx_msg void OnBnClickedRadReplace(); afx_msg void OnBnClickedRadInfix(); afx_msg void OnBnClickedRadIncrement(); afx_msg void OnBnClickedChkCasesensitive(); afx_msg void OnBnClickedChkWordmatch(); afx_msg void OnBnClickedChkWildcards(); afx_msg void OnBnClickedChkIncrement(); afx_msg void OnBnClickedChkReplace(); afx_msg void OnBnClickedChkPrefixOrSuffix(); afx_msg void OnBnClickedChkSearch(); afx_msg void OnBnClickedChkSearchxref(); afx_msg void OnBnClickedChkSearchblock(); afx_msg void OnBnClickedChkNohidden(); afx_msg void OnBnClickedChkWidthsensitive(); afx_msg void OnSelchangeComboFindrange(); afx_msg void OnLvnItemchangedLstType(NMHDR *pNMHDR, LRESULT *pResult); afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); afx_msg void OnDestroy(); virtual void OnCancel(); afx_msg void OnClose(); //}}AFX_MSG DECLARE_MESSAGE_MAP() private: void HideDialog(BOOL bFlag); bool FindText(); // Zyu modify on 100919,统一成读写文件的函数 //void LoadFindText(); //void SaveFindText(); //void LoadReplaceText(); //void SaveReplaceText(); // 提取文件到cmbText void LoadText(TCHAR *pFileName, CComboBox &cmbText, CString &sText); // 保存cmbText中的内容到文件 void SaveText(TCHAR *pFileName, CComboBox &cmbText); // Zyu add on 100919,添加一部分新函数 void SetFindOption(); // 设置查找选项 void ResetFind(); // 初始化搜索 void PickEntities(); // 从图中选取实体 void SetCtrlsVisible(); // 设置控件是否显示 void EnableCtrls(); // 更新控件是否可用 void EnableReplace(); // 控制替换按钮是否可用 bool PickText(CString &sText); // 屏幕取词 CString GetFilterString(); // 获得过滤字符串 bool GetFindText(CString &sFind); // 获得搜索字符串 bool GetReplaceText(CString &sReplace); // 获得替换字符串 bool IsNumber(LPCTSTR pszNumber, // 判断一个字符串是否是数字 bool bDot = true, bool bNeg = true) const; int GetAccuracy(const CString& sNumber) const;// 获得一个数字字符串的小数点位数 // Zyu modify on 100919,统一成向组合框中插入文本的函数 //void InsertFindText(); //void InsertReplaceText(); void InsertText(CString &sText, CComboBox &cmbText); private: //CStringList m_lstFindText; //CStringList m_lstReplaceText; PickSet m_ssText; // 实体选择集 PickSet m_ssTextAll; // 用户选中的全部实体,Zyu add on 101215 long m_nTextNumAll; // 总的实体的个数 long m_nTextNum; // 当前查找到实体的位置 int m_nCount; // 替换的数量 int m_nFindCount; // 查找到的数量 BOOL m_bIsFindEnd; // 搜索是否结束 TTextPosition m_posFind; // 找到的文字的位置 TTextPosition m_posStart; // 开始查找的位置 DWORD m_dwPosFind; // 查找组合框中的文字选中的位置 DWORD m_dwPosReplace; // 替换组合框中的文字选中的位置 CComboBox m_comboFindText; // 查找组合框控件 CComboBox m_comboReplaceText; // 替换组合框控件 CComboBox m_cmbPrefix; // 前缀组合框控件 CComboBox m_cmbSuffix; // 后缀组合框控件 CComboBox m_cmbIncrement; // 增量组合框控件 CString m_sFindText; // 查找文字 CString m_sOldFindText; // 旧的查找文字 CString m_sReplaceText; // 替换文字 CString m_sPrefixText; // 前缀文字 CString m_sSuffixText; // 后缀文字 CString m_sIncrementText; // 增量文字 WGroupCtrl m_grpSet; // 伸缩编组框控件 static BOOL m_bGrpSetStatus; // 伸缩编组框控件的状态 CToolTipCtrl m_wndToolTip; // 提示控件 CListCtrl m_lstStyle; // 文字类型控件 CTextTypeFileReader m_xmlReader;// 读取xml文件的类 COLORREF m_crPrompt; // 提示控件的文字颜色,Zyu add on 101029 int m_iFindRange; // 实体的查找范围 CFARUtil m_farUtil; // 处理查找替换的工具类,Zyu add on 101019 // Zyu add on 100917,设置选项 static BOOL m_bFind; // 查找 static int m_iReplaceType; // 替换类型 static BOOL m_bReplace; // 替换 static BOOL m_bPrefix; // 前缀 static BOOL m_bSuffix; // 后缀 static BOOL m_bIncrement; // 增量 static BOOL m_bAutoZoom; // 自动缩放 static BOOL m_bCaseSencitive; // 区分大小 static BOOL m_bWordMatch; // 全字匹配 static BOOL m_bWordMatchOld; // 旧的全字匹配 static BOOL m_bWildcards; // 通配符 static BOOL m_bWildcardsOld; // 旧的通配符 static BOOL m_bSearchXref; // 查找外部参照 static BOOL m_bSearchBlock; // 查找块参照 static BOOL m_bNoHidden; // 忽略隐藏选项 static BOOL m_bWidthSensitive; // 区分半角/全角 BOOL m_bBlkAttrib; // 是否搜索块属性值 CString m_strDefaultFilter; // lgh add, 当xml不可用的时候默认的过滤参数; }; //{{AFX_INSERT_LOCATION}} #endif // !defined(AFX_FINDANDREPLACEDLG_H__61197F0C_F0E2_4E59_8B06_DE86BAB14212__INCLUDED_)