示例#1
0
LRESULT CScriptEditView::OnFindReplaceCmd( UINT, WPARAM, LPARAM lParam, BOOL& )
{
	CFindReplaceDialog* pDlg = CFindReplaceDialog::GetNotifier(lParam);
	if( pDlg == NULL )
	{
		::MessageBeep( (UINT)-1 );
		return 1;
	}
	ATLASSERT( pDlg == m_pFindDlg );

	if( pDlg->IsTerminating() )
	{
		m_pFindDlg = NULL;
		return 0;
	}

	lstrcpyn( m_fro.StrToFind, pDlg->m_fr.lpstrFindWhat, DIMOF(m_fro.StrToFind) );
	m_fro.bMatchCase = (pDlg->MatchCase() != FALSE);
	m_fro.bWholeWord = (pDlg->MatchWholeWord() != FALSE);

	if( pDlg->FindNext() )
	{
		if( !DoFindText() )
			::MessageBeep( (UINT)-1 );
	}
	else if( pDlg->ReplaceCurrent() )
	{
		long nStart, nEnd;
		GetSel( nStart, nEnd );

		if( nStart != nEnd )
		{
			LPTSTR szFind = (LPTSTR)_alloca( (nEnd - nStart + 1) * sizeof(TCHAR) );
			GetSelText( szFind );
			int nRet;
			if( m_fro.bMatchCase )
				nRet = lstrcmp( szFind, m_fro.StrToFind );
			else
				nRet = lstrcmpi( szFind, m_fro.StrToFind );
			if(nRet == 0)
				ReplaceSel( pDlg->GetReplaceString(), TRUE );
		}

		if( !DoFindText() )
			::MessageBeep( (UINT)-1 );

	}
	else if( pDlg->ReplaceAll() )
	{
		SetRedraw(FALSE);
		CWaitCursor wait;
		while( DoFindText(false) )
			ReplaceSel( pDlg->GetReplaceString(), TRUE );
		SetRedraw( TRUE );
		Invalidate();
		UpdateWindow();
	}

	return 0;
}
示例#2
0
LRESULT CScriptEditView::OnEditFindNext( WORD wNotifyCode, WORD wId, HWND hWndCtl, BOOL& bHandled )
{
	if( m_fro.StrToFind[0] == 0 )
		return OnEditFind( wNotifyCode, wId, hWndCtl, bHandled );

	if( !DoFindText() )
		::MessageBeep( (UINT)-1 );

	return 0;
}
示例#3
0
LRESULT CMainFrame::OnFindDialogMessage(WPARAM wParam, LPARAM lParam)
{
    if (m_cFindReplaceDlg->IsTerminating())
    {
        m_cFindReplaceDlg = NULL;
        return 0;
    }
    if (m_cFindReplaceDlg->FindNext())
    {
        m_szFindString = m_cFindReplaceDlg->GetFindString();
        m_bFindMatchCase = m_cFindReplaceDlg->MatchCase();
        m_bFindSearchDown = m_cFindReplaceDlg->SearchDown();
        
        DoFindText(m_bFindSearchDown);
    }
    return 0;
}
示例#4
0
void CMainFrame::OnEditRepeatUp()
{
    DoFindText(FALSE);
}
示例#5
0
void CMainFrame::OnEditRepeat()
{
    DoFindText(TRUE);
}