Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

CEdit Log Screen

Posted on 2001-07-17
8
Medium Priority
?
275 Views
Last Modified: 2013-11-20
I would like to create a message log that displays error messages to a user during the execution of a program.  The following code will send an error message to a CEdit control (m_Messages) in red, blink the text, and then turn the text black:



                int nBegin, nEnd;

               m_TextColor = RGBRED;
          for (int i = 0; i< 2; i++)
          {
          int nBegin, nEnd;
          if ((nBegin=m_Messages.LineIndex(LineNumber)) != -1)
          {
                nEnd = nBegin + m_Messages.LineLength(LineNumber);
               m_Messages.SetSel(nBegin, nEnd);
               m_Messages.ReplaceSel(L"");

               m_Messages.UpdateWindow();
               Sleep(500);
               m_Messages.SetSel(nBegin, nEnd);
               m_ErrorMessages.ReplaceSel(L"Enter in Data");
               m_Messages.UpdateWindow();
               Sleep(500);

          }
          }
               m_Messages.SetSel(nBegin, nEnd);
               m_ErrorMessages.ReplaceSel(L"\r\n");
               m_TextColor = RGBBLACK;
               m_Messages.Invalidate();
          LineNumber++;

I was wondering if there was a way to only make the newly added text red and to keep the rest of the text black.  Also, I'm not sure how the Edit control will react when it reaches the last line of the control.  How can I test to see if the last line has been reached?


Thanks so much!
0
Comment
Question by:cneaton
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
8 Comments
 

Accepted Solution

by:
_ov earned 200 total points
ID: 6290087
You should use richedit instead. Simple edit-box is not supports the partially text decoration.

And you can use SetSel() method or something like this to set the cursor to the bottom of the editbox. Usually this method (SetSel) contains a flag like "bool bScroll" that tells the control to scroll the text to show the currently selected text.
0
 
LVL 32

Assisted Solution

by:jhance
jhance earned 200 total points
ID: 6290274
What's with the Sleep(500) calls in your code??  You really DON'T want to do this in your Windows app.  During the 500 mS your thread is blocked and no other Windows messages can be processed.  That includes updating the controls in your window.
0
 

Author Comment

by:cneaton
ID: 6290355
I have to have sleep(500) in the code or the text will not appear to blink.  I tried to thread they system, but I only ran into more problems.
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 

Author Comment

by:cneaton
ID: 6290357
I have to have sleep(500) in the code or the text will not appear to blink.  I tried to thread the system, but I only ran into more problems.
0
 

Expert Comment

by:_ov
ID: 6292574
A correct way is to remove Sleep(500) and call SetTimer(hWnd, timerId, 500, NULL) (or like this);
Than, in WM_TIMER you should place KillTimer(hWnd, timerId);

If you need two pauses you can use a variable to count them.
0
 
LVL 12

Expert Comment

by:migel
ID: 6292672
Hi!
IMHO you choose wrong control to this task.
look at www.codeguru.com misc. controls section for Logging window article.
0
 
LVL 1

Expert Comment

by:Moondancer
ID: 6956539
ADMINISTRATION WILL BE CONTACTING YOU SHORTLY.  Moderators Computer101 or Netminder will return to finalize these if still open in seven days.  Please post closing recommendations before that time.

Question(s) below appears to have been abandoned. Your options are:
 
1. Accept a Comment As Answer (use the button next to the Expert's name).
2. Close the question if the information was not useful to you, but may help others. You must tell the participants why you wish to do this, and allow for Expert response.  This choice will include a refund to you, and will move this question to our PAQ (Previously Asked Question) database.  If you found information outside this question thread, please add it.
3. Ask Community Support to help split points between participating experts, or just comment here with details and we'll respond with the process.
4. Delete the question (if it has no potential value for others).
   --> Post comments for expert of your intention to delete and why
   --> YOU CANNOT DELETE A QUESTION with comments; special handling by a Moderator is required.

For special handling needs, please post a zero point question in the link below and include the URL (question QID/link) that it regards with details.
http://www.experts-exchange.com/jsp/qList.jsp?ta=commspt
 
Please click this link for Help Desk, Guidelines/Member Agreement and the Question/Answer process.  http://www.experts-exchange.com/jsp/cmtyHelpDesk.jsp

Click you Member Profile to view your question history and please keep them updated. If you are a KnowledgePro user, use the Power Search option to find them.  

Questions which are LOCKED with a Proposed Answer but do not help you, should be rejected with comments added.  When you grade the question less than an A, please comment as to why.  This helps all involved, as well as others who may access this item in the future.  PLEASE DO NOT AWARD POINTS TO ME.

To view your open questions, please click the following link(s) and keep them all current with updates.
http://www.experts-exchange.com/questions/Q.20150129.html
http://www.experts-exchange.com/questions/Q.20152178.html
http://www.experts-exchange.com/questions/Q.20286635.html
http://www.experts-exchange.com/questions/Q.20287692.html




*****  E X P E R T S    P L E A S E  ******  Leave your closing recommendations if this item remains inactive another seven (7) days.  If you are interested in the cleanup effort, please click this link http://www.experts-exchange.com/jsp/qManageQuestion.jsp?ta=commspt&qid=20274643 
POINTS FOR EXPERTS awaiting comments are listed here -> http://www.experts-exchange.com/commspt/Q.20277028.html
 
Moderators will finalize this question if in @7 days Asker has not responded.  This will be moved to the PAQ (Previously Asked Questions) at zero points, deleted or awarded.
 
Thank you everyone.
 
Moondancer
Moderator @ Experts Exchange
0
 
LVL 23

Expert Comment

by:Roshan Davis
ID: 9490537
No comment has been added lately, so it's time to clean up this TA.
I will leave a recommendation in the Cleanup topic area that this question is:

Answered by : jhance, _ov (points to be split)

Please leave any comments here within the next seven days.

PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!

Roshan Davis
EE Cleanup Volunteer
0

Featured Post

How to Use the Help Bell

Need to boost the visibility of your question for solutions? Use the Experts Exchange Help Bell to confirm priority levels and contact subject-matter experts for question attention.  Check out this how-to article for more information.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction: Hints for the grid button.  Nested classes, templated collections.  Squash that darned bug! Continuing from the sixth article about sudoku.   Open the project in visual studio. First we will finish with the SUD_SETVALUE messa…
Introduction: Dialogs (2) modeless dialog and a worker thread.  Handling data shared between threads.  Recursive functions. Continuing from the tenth article about sudoku.   Last article we worked with a modal dialog to help maintain informat…
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.
In response to a need for security and privacy, and to continue fostering an environment members can turn to for support, solutions, and education, Experts Exchange has created anonymous question capabilities. This new feature is available to our Pr…
Suggested Courses

609 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