Solved

using  CRichEditCtrl::FindText  ..

Posted on 2002-03-20
7
1,117 Views
Last Modified: 2013-11-20
hi all!

I have build my own Find/Replace dialog ( derived from CDialog class) to search into a CRichEditCtrl .
now, everything is working just fine except 1 thing: how can implement "direction up" option ?? I mean to search from the current position to the beginning of the document ?? .. FindText method can't do it ..

10x
0
Comment
Question by:dragosh
  • 4
  • 3
7 Comments
 
LVL 3

Expert Comment

by:GGRUNDY
Comment Utility
The documentation on CRichEditCtrl::FindText says

Call this function to find text within the rich edit control. You can search either up or down by setting the proper range parameters in theCHARRANGE structure within the FINDTEXTEX structure.

I assume this means you just reverse the values of
cpMin & cpMax to search up.

Cheers

0
 
LVL 3

Author Comment

by:dragosh
Comment Utility
hi ggrundy

i've try that and it doesn't help ... in this way I set the range of text where to search , but NOT the "direction up" .. if I set cpMin = 0 and cMax let's say 1000 (current position) and click Find next I get the first match from the beginning of the document, not first match from current position ..

any ideas ??

10x
0
 
LVL 3

Expert Comment

by:GGRUNDY
Comment Utility
Are you saying that you have tried

cpMin = nCurrentPosition;
cpMax = 0;

and it doesn't work???
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 3

Author Comment

by:dragosh
Comment Utility
hi ggrundy

yes: it returns -1 ..
0
 
LVL 3

Accepted Solution

by:
GGRUNDY earned 50 total points
Comment Utility
Here's an answer (AND IT's NOT PRETTY). :-(

The following code...
================================================
int n;
m_edit.SetWindowText("When your mom is mad with your dad, don't let her brush your hair.");
FINDTEXT range = {{0,0},"your"};
m_edit.SetSel(-1,-1);
m_edit.GetSel(range.chrg);
range.chrg.cpMax=0;
while((n = m_edit.SendMessage(EM_FINDTEXT, 0, (LPARAM)&range))!=-1){
  TRACE("text found at %d\n",n);
  range.chrg.cpMin = n;
  }
===================================================
Produces the following output...
text found at 56
text found at 26
text found at 5
===================================================
Indicating that indeed you can search backwards by swapping the cpMin & cpMax values around, BUT....

a) you can't use -1 to indicate the end of the file; and
b) you can't use version 1.0 of the rich edit control.
Because I created my Rich Edit control using the dialog resource editor I had to subsequently manually edit my .rc file as text and change
this line
CONTROL  "",IDC_RICHEDIT,"RichEdit" ,ES_MULTILINE | WS_BORDER | WS_TABSTOP,39,26,116,83

to this
CONTROL "",IDC_RICHEDIT1,"RichEdit20A" ,ES_MULTILINE | WS_BORDER |WS_TABSTOP,39,26,116,83

in order to be using version 2 of the rich text control.
(Hint use Spy++ to check the class of your rich text window).

Cheers Greg




"RichEdit20A"
0
 
LVL 3

Author Comment

by:dragosh
Comment Utility
sorry about rejecting your answer ..

it works only with version 2 of rich text control ?
0
 
LVL 3

Author Comment

by:dragosh
Comment Utility
hi again

in MSDN says about this .. in Rich Edit 2.0 or later - FR_DOWN etc.

i'am using CRichEditCtrl 1.0 , so that's way it doesn't work... i'll cosider to use 2.0

10x for your tips
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
not able to insert into temp table 68 149
Shell script to login to remote m/c and execute commands 10 72
sum13 challenge 24 77
twoTwo  challenge 35 85
Introduction: Dynamic window placements and drawing on a form, simple usage of windows registry as a storage place for information. Continuing from the first article about sudoku.  There we have designed the application and put a lot of user int…
Have you tried to learn about Unicode, UTF-8, and multibyte text encoding and all the articles are just too "academic" or too technical? This article aims to make the whole topic easy for just about anyone to understand.
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now