Files
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

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_)