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; }
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; }
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; }
void CMainFrame::OnEditRepeatUp() { DoFindText(FALSE); }
void CMainFrame::OnEditRepeat() { DoFindText(TRUE); }