2025-11-27 16:46:48 +09:00

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);
}