|
Toni,
This does not do anything different from what I had. Do you have any other ideas....it is beginning to drive me crazy to have all these duplicate screens.
Thanks again for your help
|
|
|
|
|
Jay Hova wrote:
Do you have any other ideas
Unfortunately, I don't. Sorry!
// Afterall, I realized that even my comment lines have bugs
When one cannot invent, one must at least improve (in bed).-My latest fortune cookie
|
|
|
|
|
Hi,
First off, thanks for the suggestions and help.
I tried both and they did not work for what I want. Maybe I should explain better.
I have one window called stats and one window called config. Each having their own menu option to display them. If I constantly use the menu item to bring up stats it works fine with the code I wrote, continuously setting focus to the opened window instead of creating a new one.
My problem is when i bring up the config window. When "ok" is hit on my config window it should open the stat window if it is closed or just set focus to it. No matter if i display the stats window and the bring up the config window, or if i just repeatedly bring up the config window it will continue to make new instances of the stats window everytime config is brought up.
Can someone help me solve this problem so that only one stats window is displayed no matter how i use the menu?
THANKS IN ADVANCE!
Any help would be appreciated, this is beginning to drive me nuts.
|
|
|
|
|
Try this:
if( IsWindow( m_pStats.m_hWnd ) == FALSE )
{
}
else
{
}
|
|
|
|
|
Hi
I have a CEdit control that I am trying to have multilined. I am reading a file into a char array buffer:
<br />
char buffer[1000];<br />
<br />
CClass->Read(Buffer, length);<br />
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.
|
|
|
|
|
Post an example of the string in Buffer including the code for the carriage return.
Kuphryn
|
|
|
|
|
try \r instead of \n in your code
|
|
|
|
|
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
<br />
SetDlgItemText(IDC_EDIT, strBuff);<br />
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.
|
|
|
|
|
Ah sorry misread your post. I thought you meant not for me to write it into the buffer, which I wasn't. I need some coffee I will try that thank you, and thank you for your patience!
|
|
|
|
|
I have not used an multiline edit control for a while, but if you are reading in a file from disk and getting 'square' boxes. Then you probubly need to strip out the the CRs and just end the lines with LF. If this is the case, and you want to write the text back to disk, you may need to insert the CRs back into the text before saving.
INTP
|
|
|
|
|
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
|
|
|
|
|
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!
|
|
|
|
|
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.
|
|
|
|
|
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.
|
|
|
|
|
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";<br />
str.Replace("\r", "\r\n");<br />
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!
|
|
|
|
|
Hi,
Whe I used my CListBox on a dialog and wanted to scroll it programatically, I used:
<br />
list_box.SetAnchorIndex (pivot+18);
list_box.SetSel (pivot-1);<br />
But when I used CListBox as a view inside a CFrameWnd it does not work anymore, it always shows the selected line at the top.
???????????/
Shay
|
|
|
|
|
hi all
does ne1 know how to detect memory leaks, i think my application
has them
thanks
si
|
|
|
|
|
There are articles at codeproject on how to detect memory leaks.
You could also download a trail copy of "BoundsChecker" or some other testing software.
INTP
|
|
|
|
|
Try Numega BoundsChecker.
Or using MFC CMemoryState to see the memory usage at each stage but I think this way is kinda troublesome. I would prefer Boundschecker with nice UI.
|
|
|
|