224 lines
7.6 KiB
C++
224 lines
7.6 KiB
C++
#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_)
|