Click here to Skip to main content
16,007,687 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralActive document server & print preview Pin
25-Sep-01 10:53
suss25-Sep-01 10:53 
GeneralDLLs: conceptual questions Pin
Stephen Wilson25-Sep-01 10:19
Stephen Wilson25-Sep-01 10:19 
GeneralRe: DLLs: conceptual questions Pin
Michael P Butler25-Sep-01 10:29
Michael P Butler25-Sep-01 10:29 
GeneralRe: DLLs: conceptual questions Pin
Stephen Wilson25-Sep-01 11:08
Stephen Wilson25-Sep-01 11:08 
GeneralRe: DLLs: conceptual questions Pin
Mike Burston25-Sep-01 12:32
Mike Burston25-Sep-01 12:32 
GeneralThanks! It looks really useful Pin
Stephen Wilson25-Sep-01 13:02
Stephen Wilson25-Sep-01 13:02 
GeneralRe: Thanks! It looks really useful Pin
Mike Burston25-Sep-01 14:31
Mike Burston25-Sep-01 14:31 
GeneralCFindAndReplace Dialog Pin
25-Sep-01 8:33
suss25-Sep-01 8:33 
I am having some trouble with CFindAndReplace dialog. It appears that everything works until the point the dialog goes out of scope when it crashes.

According to documents, you have to instantiate the structure on the heap and then create the dialog which is what i do :

void LogDlg::OnCmdSearch()
{
if (!pFRDlg)
{
// Initialize find string
if (!szFRDlgFindString)
{
szFRDlgFindString = new char[256];
szFRDlgFindString[0] = 0;
}

// New find dialog
pFRDlg = new CFindReplaceDialog();

pFRDlg->m_fr.lStructSize = sizeof(pFRDlg->m_fr);
pFRDlg->m_fr.hwndOwner = this->GetSafeHwnd();
// Can't do up/down searches in RichEditCtrl?
pFRDlg->m_fr.Flags |= FR_HIDEUPDOWN;
pFRDlg->m_fr.lpstrFindWhat = szFRDlgFindString;
pFRDlg->m_fr.wFindWhatLen = 256;

pFRDlg->Create(TRUE, "", NULL, FR_DOWN, this);
}
}


After that, you have your search routine:


void LogDlg::OnFind()
{
if (pFRDlg->IsTerminating())
{
pFRDlg = NULL;
}
else if (pFRDlg->FindNext())
{
static bool InFindNext = false;

if (InFindNext)
return;

InFindNext = true;
CRichEditCtrl *pEdit = (CRichEditCtrl *)GetDlgItem(IDC_LOGVIEW);

FINDTEXTEX FindText;
pEdit->GetSel(FindText.chrg);
// Set text range appropriately....
// If it's empty, select the entire range
if (FindText.chrg.cpMin == FindText.chrg.cpMax)
{
FindText.chrg.cpMin = 0;
FindText.chrg.cpMax = -1;
}
// If there's selected text, read past it.
else if (FindText.chrg.cpMin >= 0 && FindText.chrg.cpMax > 0)
{
FindText.chrg.cpMin = FindText.chrg.cpMax;
FindText.chrg.cpMax = -1;
}
FindText.lpstrText = szFRDlgFindString;

for (;;)
{
// Did we find something?
if (pEdit->FindText((pFRDlg->MatchCase() ? FR_MATCHCASE : 0) |
(pFRDlg->MatchWholeWord() ? FR_WHOLEWORD : 0),
&FindText) != -1)
{
pEdit->SetSel(FindText.chrgText);
break;
}
// Looped?
else if (FindText.chrg.cpMin != 0 || FindText.chrg.cpMax != -1)
{
if (MessageBox(_T("End of text reached. Search again from the beginning?"), _T("Selection not found."), MB_YESNO | MB_ICONQUESTION) == IDYES)
{
FindText.chrg.cpMin = 0;
FindText.chrg.cpMax = -1;
}
else
break;
}
// Nowhere in there
else
{
MessageBox(_T("No matching text found."), _T("Selection not found"), MB_OK | MB_ICONWARNING);
pEdit->SetSel(0, 0);
break;
}
}

InFindNext = false;
}
}


So, what else do i need to do, to prevent this thing from crashing? Do I need to clean up this thing somewhere? Am i missing something?
Generalaccessing adressbar of IE Pin
25-Sep-01 7:06
suss25-Sep-01 7:06 
QuestionHow do I access individual bits? Pin
Craig Miller25-Sep-01 6:42
Craig Miller25-Sep-01 6:42 
AnswerRe: How do I access individual bits? Pin
Chris Losinger25-Sep-01 6:58
professionalChris Losinger25-Sep-01 6:58 
GeneralRe: How do I access individual bits? Pin
Craig Miller26-Sep-01 8:16
Craig Miller26-Sep-01 8:16 
AnswerRe: How do I access individual bits? Pin
User 988525-Sep-01 11:10
User 988525-Sep-01 11:10 
GeneralDirectShow (again) Pin
#realJSOP25-Sep-01 6:40
professional#realJSOP25-Sep-01 6:40 
GeneralNeed a link to article Pin
25-Sep-01 6:36
suss25-Sep-01 6:36 
GeneralRe: Need a link to article Pin
Michael Dunn25-Sep-01 16:59
sitebuilderMichael Dunn25-Sep-01 16:59 
GeneralWTL windows and unchanging cursors Pin
The Arabundi25-Sep-01 6:05
The Arabundi25-Sep-01 6:05 
GeneralRe: WTL windows and unchanging cursors Pin
Tim Smith25-Sep-01 6:33
Tim Smith25-Sep-01 6:33 
GeneralRe: WTL windows and unchanging cursors Pin
The Arabundi25-Sep-01 9:05
The Arabundi25-Sep-01 9:05 
GeneralTab order question Pin
RobJones25-Sep-01 5:51
RobJones25-Sep-01 5:51 
GeneralRe: Tab order question Pin
RobJones25-Sep-01 7:01
RobJones25-Sep-01 7:01 
GeneralRe: Tab order question Pin
Paolo Messina26-Sep-01 0:46
professionalPaolo Messina26-Sep-01 0:46 
GeneralRe: Tab order question Pin
RobJones26-Sep-01 4:39
RobJones26-Sep-01 4:39 
QuestionHow can I (programatically) scroll the client area derived from CHtmlView. Pin
Umar Riaz25-Sep-01 5:33
Umar Riaz25-Sep-01 5:33 
QuestionDebugging multi-threaded apps in VS IDE? Pin
jbay@nebs.com25-Sep-01 5:20
jbay@nebs.com25-Sep-01 5:20 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.