Jag är en nybörjare i C++ som tar mina första steg i MFC med hjälp av Visual Studio 6. >Även om jag bara har detta i OnCreate funktionen så kraschar det: Jag kom på det själv. Det skall stå: if (CListBox::OnCreate(lpCreateStruct) == -1). Visa kontroller inuti en list kontroll
Det här är mitt projekt:
Jag har en vanlig dialog där jag har placerat en list control. Jag har också skapat en speciell klass för min list control:
class CListCtrlex : public CListCtrl
I den här klassen så hanterar jag bland annat musklick så att en combobox eller editbox visas ovanpå en item eller subitem i list controllen. Detta för att kunna editera texten i dem. Det finns mycket info att hämta på Internet om detta, så det var inte så svårt att få det att funka. Problemet började dock när jag försökte visa en listbox på samma sätt som jag gör med comboboxen och editboxen.
Jag försökte få koden i min InPlaceListbox klass att efterlikna den som jag använder för comboboxen så mycket som möjligt, men trots det så kraschar hela mitt program när listboxen skall visas!
Så här skapas listboxen från min CListCtrlex klass:
DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_BORDER | LBS_NOTIFY | LBS_SORT | WS_VSCROLL ;
CListBox *pList = new CInPlaceListbox(nItem, nSubItem, &m_strList);
pList->Create(dwStyle,rect,this,IDC_LISTBOXINLISTVIEW);
return pList;
Jag har funnit att det som gör att det kraschar är OnCreate message handler'n i CinPlaceListbox klassen.
Tar jag bort den handler'n så visas listboxen utan att krascha, men har jag den kvar utan att ha någon egen kod där, så kraschar det likväl.
Även om jag bara har detta i OnCreate funktionen så kraschar det:
int CInPlaceListbox::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CInPlaceListbox::OnCreate(lpCreateStruct) == -1)
return -1;
return 0;
}
Vad gör jag för fel?
Måste listboxar skapas på ett annat sätt än comboboxar?
Tacksam för svar!Sv: Visa kontroller inuti en list kontroll
>int CInPlaceListbox::OnCreate(LPCREATESTRUCT lpCreateStruct)
>{
> if (CInPlaceListbox::OnCreate(lpCreateStruct) == -1)
Vad är vitsen med detta anrop? Ser ut som du skapar en oändlig rekursion.
MSSv: Visa kontroller inuti en list kontroll