Link to home
Start Free TrialLog in
Avatar of oak022097
oak022097

asked on

CListBox Problem

Using the CListBox class, I try to write a log records into the list box, whenever an event occurs in my application, I use the insertstring() and updatewindow() method to write the event into the listbox, and simultansly, I write the record also into a DB. The problem is that sometimes, when I look at the list, the same event is written there many times, although the event occured only once(1 record in the DB). When I want to clear the box I use the resetcontent() method, but it seem as it doesn't clear the listbox.
Any idea?
Thanks,
Alon
Avatar of plaroche
plaroche

InsertString show redraw the listbox, no need to use UpdateWindow().

Could you paste the code where you use InsertString, and also the one where you use ResetContent?
Try adding a Trace statement where you insert the string, see how many times your code gets executed.
if you can not reset content of listBox.
you are sure to get the correct CWnd point(HWND) of ListBox window.
Try with a counter added to the string that you post as a log in the listbox.
If the number increases always ( even in the three same strings ), then you must find a bug in your code.
If the number is the same, then there is a problem with the listbox.
Avatar of oak022097

ASKER

Well, the problem is that a line after the insertstring() function, I add the string into a DB, and when I look at the DB,
there are no duplicate records, so it couldn't be that I get into the same line few times, w/o notice. Am I right?

Thanks again,
Alon
Are you perhaps reading DB entries into the list somewhere else? In a onupdate-type command handler?
NO!
member
m_List1;

m_List1.insertString("BLAH", 3);

in DB=ins

I suggest if you don't have a specific order, to use AddString().
m_List1.AddString(Blah);
in DB...

that should clear the problem.  m_List1.resetContent(); should work.
search me:) if it doesn't.
ASKER CERTIFIED SOLUTION
Avatar of The_Brain
The_Brain

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
I can't use the addstring, because I need the list to be sorted by the time the string was added to the list, and when using the addstring, it would not insure me this sort.
What type of sort are you talking about?  
Alpha sort is sure,  just check the properties.

 m_List1.InsertString(Blah,0)  //or is that 1? mmm, I'll have to check that.
It actually depends on what order you want to sort it.  Tell me that and I can give you a much more convincing answer...
Another thing is, I have been working with listboxes for this week quite frequently, and I have not had any problems exept duplicates, AND that was because of coding error.  small logic error, undetectable to the scimming eye.  You have to examine CLOSELY to the code which is performing the data input, and you might see a flaw, mostly in arrays, exceedind arrays, lacking size of arrays, and the BIGGEST problem, different sizes of arrays in protocalls and procedures... that is really worth a good look.  JUST examine the process and write down what you think it does this is a great way of debugging small errors. :)