CEdit carriage returns
-
Sorry should have been more clear but thanks for the fast response. I am not adding the '\r\n' or anything into the code, it is how it is getting read into the buffer from the member function. I'll post an example when I get home from the code I have but basically its: Create CInternetSession and CHttpFile, send request, and then the read member function from CHttpFile. Then I just call
SetDlgItemText(IDC_EDIT, strBuff);
Where strBuff is a CString that has been created using the character array CString strBuff(Buffer); I know its redundant but I did this to see if CString would handle the carriage return better but its not :(Well then, Once again, on the same string you send to the edit box, try : strBuff.Remove ('\r'); See if that will work.
-
Well then, Once again, on the same string you send to the edit box, try : strBuff.Remove ('\r'); See if that will work.
-
Hi I have a CEdit control that I am trying to have multilined. I am reading a file into a char array buffer:
char buffer[1000]; CClass->Read(Buffer, length);
My question is that when I have the edit box display the buffer it is not displaying it correctly. Instead of carriage returns I am getting 'square' boxes. I moved the buffer into a CString, but its not picking up the CRLF. How do I go about doing this? Do I have to search and replace? Or, is there a CString method that easily fixes the CRLF problem I am having. I tried using the character array and a type-casted CString variable but I keep getting the same problem. The class I am using is CHttpFile and its read method. TIA for any help or insight you can give into this matter.Make sure the control has the ES_MULTILINE style.
-
Make sure the control has the ES_MULTILINE style.
Its set to true. Btw I am using Visual Studio.Net the first release, and I can't believe that it does not have a single service pack or update for it.
-
Its set to true. Btw I am using Visual Studio.Net the first release, and I can't believe that it does not have a single service pack or update for it.
Then the following code snippet should work:
m_edit.SetWindowText("This is on line 1\r\nThis is on line 2\r\nThis is on line 3");
-
Thanks I thought that is what I had todo, but I figured their would have been a helper function or a member of CString todo that since it sounds like something a lot of people would do. Oh well time to write a small search and replace function :)
There normaly is but you did not say what class you is providing the read method. CArchive provides ReadString() (reads one line at a time), although I think it removeS the CRLF and replaces it with a '\0'. If using stdio (C) then you would use fgets() replaces the CRLF with '\n''\0'. So you may, or may not, already have a method that will help you. INTP
-
Then the following code snippet should work:
m_edit.SetWindowText("This is on line 1\r\nThis is on line 2\r\nThis is on line 3");
DavidCrow yes that would work thank you. But the enformation I am getting is placed inside a buffer which is a CString, and it is that CString I am putting into the edit box, for example: SetDlgItemText(IDC_EDIT, strBuffer); Where strBuffer is a CString, and the information from that is read from a file. Once placed inside the CEdit box it is displaying those weird 'squares' instead of doing a CRLF.
-
DavidCrow yes that would work thank you. But the enformation I am getting is placed inside a buffer which is a CString, and it is that CString I am putting into the edit box, for example: SetDlgItemText(IDC_EDIT, strBuffer); Where strBuffer is a CString, and the information from that is read from a file. Once placed inside the CEdit box it is displaying those weird 'squares' instead of doing a CRLF.
It matters not that SetWindowText()'s parameter is a CString, or a string literal. The characters \r\n must be used. If you are only receiving one of them, a quick search and replace is all that's needed. For example:
CString str = "This is on line 1\rThis is on line 2\rThis is on line 3"; str.Replace("\r", "\r\n"); m_edit.SetWindowText(str);
-
Thanks I thought that is what I had todo, but I figured their would have been a helper function or a member of CString todo that since it sounds like something a lot of people would do. Oh well time to write a small search and replace function :)
-
scontapay wrote: I figured their would have been a helper function or a member of CString
strTextWithCarriageReturns::Remove(_T('\r'));
Shog9
Give me a Leonard Cohen afterworld So I can sigh enternally...
Thanks I see where my problem is. It is the fact that I kept misreading everyones advice :( I thought everyone was trying to tell me to insert it into the buffer I was creating, and didn't think anyone knew I was reading it in. My fault... See what 6-8 months away does to a C++ programmer when programminging VB! :|
-
It matters not that SetWindowText()'s parameter is a CString, or a string literal. The characters \r\n must be used. If you are only receiving one of them, a quick search and replace is all that's needed. For example:
CString str = "This is on line 1\rThis is on line 2\rThis is on line 3"; str.Replace("\r", "\r\n"); m_edit.SetWindowText(str);
I wanted to thank you for your help. Here is a copy of a post made above so you know what happened: Thanks I see where my problem is. It is the fact that I kept misreading everyones advice I thought everyone was trying to tell me to insert it into the buffer I was creating, and didn't think anyone knew I was reading it in. My fault... See what 6-8 months away does to a C++ programmer when programminging VB! :|