Re: ListBox in a FormView
"Scott McPhillips [MVP]" <org-dot-mvps-at-scottmcp> wrote in message
news:OM5DzZsaGHA.1204@TK2MSFTNGP04.phx.gbl...
Gerry Murphy wrote:
Hello,
I've got this strange error I'm hoping someone can shed some
light on.
I'm dealing with an old code base I'm trying to clean up.
To give you an idea of the age it's using VC 1.52c.
Part of the cleanup involved removing uses of
GetDlgItem() as suggested by Joe Newcomer and
using control variables.
That's when I ran into a strange problem.
The symptom is that the form comes up but the listboxes are empty,
whereas
before, when GetDlgItem() was used they were filled. I suspected an
uninitialized control, the last two lines in OnInitialUpdate() call
functions to
load the listboxes, but I'm not sure how to correct it.
In stepping through the code I find that the call to AddString() doesn't
return
an error, but it also doesn't add the string. In the loop where the
strings
are added I've checked the count and it's always zero.
Does anybody have any ideas?
TIA,
Gerry Murphy
BTW: I see code samples using formviews where some people call
the base class CFormView::OnInitialUpdate(); and others where
it's not called. Which is proper? ( The code I'm dealing with
does not call it.)
Initialize the list box after calling CFormView::OnInitialUpdate.
--
Scott McPhillips [VC++ MVP]
If I do that in Debug mode I get an assert in WINCORE.CPP
at the second line below:
BOOL CWnd::Attach(HWND hWndNew)
{
ASSERT(m_hWnd == NULL); // only attach once, detach on destroy
ASSERT(FromHandlePermanent(hWndNew) == NULL);
// must not already be in permanent map
if (hWndNew == NULL)
return FALSE;
_afxMapHWND.SetPermanent(m_hWnd = hWndNew, this);
return TRUE;
}
In release mode it crashes.
My hunch is that I may have to move the function calls that load the
listboxes out of OnInitialUpdate(), but then I'm not sure where to
call them.
Thanks,
Gerry Murphy