66 lines
1.6 KiB
C++
66 lines
1.6 KiB
C++
// MyRegular.cpp: implementation of the CMyRegular class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#include "stdafx.h"
|
|
#include "RegExpression.h"
|
|
#include "MyRegular.h"
|
|
#include "FindDialog.h"
|
|
#include "MainFrm.h"
|
|
|
|
#include "UTBStrOp.h"
|
|
|
|
#ifdef _DEBUG
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[]=__FILE__;
|
|
#define new DEBUG_NEW
|
|
#endif
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Construction/Destruction
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
CMyRegular::CMyRegular()
|
|
{
|
|
m_pParent=NULL;
|
|
}
|
|
|
|
CMyRegular::~CMyRegular()
|
|
{
|
|
|
|
}
|
|
|
|
BOOL CMyRegular::OnMatch(int nStart, int nLength)
|
|
{
|
|
if (m_pParent && ::IsWindow(m_pParent->GetSafeHwnd())
|
|
&& ::IsWindow(m_pParent->m_lstResult.m_hWnd))
|
|
{
|
|
|
|
CMainFrame* pFrame=(CMainFrame*) AfxGetMainWnd();
|
|
ASSERT(pFrame);
|
|
CEditView* pView=(CEditView*) pFrame->GetActiveView();
|
|
ASSERT(pView);
|
|
pView->GetEditCtrl().SetSel(nStart+m_pParent->m_nStartSearch,
|
|
nLength+nStart+m_pParent->m_nStartSearch);
|
|
TCHAR szBuffer[_MAX_PATH];
|
|
UTBStr::itot(nStart+m_pParent->m_nStartSearch,szBuffer,_MAX_PATH,10);
|
|
m_pParent->m_lstResult.InsertItem(
|
|
m_pParent->m_lstResult.GetItemCount(),
|
|
(LPCTSTR) m_sString.Mid(nStart,nLength));
|
|
m_pParent->m_lstResult.SetItemText(
|
|
m_pParent->m_lstResult.GetItemCount()-1,
|
|
1,szBuffer);
|
|
UTBStr::itot(nLength,szBuffer,_MAX_PATH,10);
|
|
m_pParent->m_lstResult.SetItemText(
|
|
m_pParent->m_lstResult.GetItemCount()-1,
|
|
2,szBuffer);
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CMyRegular::Match(CString sString)
|
|
{
|
|
m_sString=sString;
|
|
return COXRegExpression::Match(sString);
|
|
}
|