Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

MatrixCubed

Win32 RichEdit

This topic is 5850 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I''ve come across this, and duplicated the problem by accident, but I am unsure of the best way to rectify the problem. When I create a RichEdit control and add some text -- using SetWindowText() -- it seems that the control tends to auto-select or highlight the string that I have passed to it. I''ve tried using EM_SETSEL to set the selection to before the first character in the string, but this doesn''t seem to be an elegant solution (nor does it even work). I''ve checked through the Win32 documentation, but I''m not really sure what to be looking for; this seems to be a symptom of something else, like a creation flag (autoselect?) or ... I don''t know, I can''t find anything on this behavior. Any help is appreciated! MatrixCubed
http://MatrixCubed.cjb.net

Share this post


Link to post
Share on other sites
Advertisement
What are your creation flags? Why are you using SetWindowText rather than some _ADDSTRING-type message?

Share this post


Link to post
Share on other sites
Pretty standard:


  
CONTROL "",IDC_DisplayBox,"RICHEDIT",ES_MULTILINE |
ES_AUTOVSCROLL | ES_AUTOHSCROLL | WS_TABSTOP,0,0,225,120


As for an "_ADDSTRING"-type message, no such thing exists for rich edit controls. The proper means of "adding" text to it is maintaining your own data, then pointing the control to it using SetWindowText().

I suppose I should mention, too, that I am solely using Win32, not MFC.



MatrixCubed
http://MatrixCubed.cjb.net

Share this post


Link to post
Share on other sites
Hi!

I suggest replacing setwindowtext with streamin and a callback function (I may supply you with some of my own code about that). You also said that setsel did not work. It should work - check, whether you have placed setsel after setwindowtext and whether you have set the correct parameters.

Siim Karus

Share this post


Link to post
Share on other sites
To remove selection call:
SendMessage(pRichEditWindow/*pointer to richedit controls window*/,EM_SETSEL,-1,0);

If it desn't work, let me know.

Adding a string in RichEditControl (or a window) is like this:

EDITSTREAM esIn;
PARAFORMAT pf;

FORMATRANGE pfr;
CHARRANGE chr;

esIn.dwCookie = IDC_DisplayBox;
esIn.dwError = 0;
esIn.pfnCallback = RichEditLoad;
//callback for sending text to richedit

SendMessage(pRichEditWindow/*pointer to richedit controls window*/,EM_SETSEL,nWhereTo,nWhereTo );
SendMessage(pRichEdit,EM_STREAMIN,SF_TEXT|SFF_SELECTION,esIn);
//replaces selection text (or adds if selection is 0 bytes long)


Siim Karus

[edited by - siim04 on June 18, 2002 6:21:30 AM]

Share this post


Link to post
Share on other sites

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!