CListbox und InsertString



  • hi,
    Ich habe folgendes Problem:
    Ich habe einen Dialog(EingabeDialog) den ich der unter anderem eine Listbox enthält. Mittels "Klassen-Assistent" habe ich dieser eine Variable vom dem Typ CListBox hinzugefügt(m_list) und wollte nun in der OnInitDialog Methode die Liste (zum Test mal mit "Daten")initialisieren.

    BOOL EingabeDialog::OnInitDialog()
    {
    	m_list.ResetContent();
    	m_list.InsertString(-1,"Daten");
    	UpdateData();
    	return 1;
    }
    

    Doch die Listbox bleibt leer.
    Ich bin ein anfänger in Sachen MFC, bitte darum um Hilfe...



  • bei einer listbox brauchst du kein update data, nur bei eingabefelder

    schau mal in der msdn nach lsitbox oder drück z.b. F1 auf dem wort insertstring. da ich nur eigene listboxen verwende( da heisst es AddIem( string, farbe ), heissen die methoden anders und die entwicklungsumgebung hab ich nciht grad vorliegen. aber warum ( -1, "daten" )

    was ist der erste paramenter?



  • Der Aufruf ist korrekt @ newkid. Einfach mal den eigenen Tip verwenden: MSDN

    @Archon: Was gibt InsertString denn zurück?
    Hast du vielleicht irgendwo anders nochmals einen ResetContent?
    Alternativ versuch mal die Methode AddString.



  • dEUs schrieb:

    Der Aufruf ist korrekt @ newkid. Einfach mal den eigenen Tip verwenden: MSDN

    @Archon: Was gibt InsertString denn zurück?
    Hast du vielleicht irgendwo anders nochmals einen ResetContent?
    Alternativ versuch mal die Methode AddString.

    jep, da kannst du auch nachschauen was InsertString zurückliefert, wenn dich das so heiss interessiert



  • hier z.b.

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_wcemfc4/html/aflrfclistboxcolcolinsertstring.asp

    dein -1 muesste stimmen

    Specifies the zero-based index of the position to insert the string. If this parameter is –1, the string is added to the end of the list.

    aber
    wichtig:

    This method inserts a string into the list box. Unlike the AddString method, InsertString does not cause a list with the LBS_SORT style to be sorted.

    versuch mal AddString

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_wcemfc4/html/aflrfclistboxcolcoladdstring.asp



  • newkid_ schrieb:

    dEUs schrieb:

    Der Aufruf ist korrekt @ newkid. Einfach mal den eigenen Tip verwenden: MSDN

    @Archon: Was gibt InsertString denn zurück?
    Hast du vielleicht irgendwo anders nochmals einen ResetContent?
    Alternativ versuch mal die Methode AddString.

    jep, da kannst du auch nachschauen was InsertString zurückliefert, wenn dich das so heiss interessiert

    Du bist ein Idiot. Guck einfach mal in die MSDN, da siehst du, dass diese Funktion mehrere Werte zurückgeben kann. Bitte halte dich aus diesem Thread fern.



  • Gar nicht gewusst, das kleine flameKiddies auch Mods ein können 🙄



  • mit AddString geht's auch nicht.
    InsertString hat den Rückgabetyp von int.
    Hier mal Eingabedialog.h

    #if !defined(AFX_EINGABEDIALOG_H__9D97316B_2202_4375_8986_0CAEF1DB1F40__INCLUDED_)
    #define AFX_EINGABEDIALOG_H__9D97316B_2202_4375_8986_0CAEF1DB1F40__INCLUDED_
    
    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
    // EingabeDialog.h : Header-Datei
    //
    #include "MfcGeruest.h"
    /////////////////////////////////////////////////////////////////////////////
    // Dialogfeld EingabeDialog 
    
    class EingabeDialog : public CDialog
    {
    // Konstruktion
    public:
    	EingabeDialog(CWnd* pParent = NULL);   // Standardkonstruktor
    
    // Dialogfelddaten
    	//{{AFX_DATA(EingabeDialog)
    	enum { IDD = IDD_DIALOG1 };
    	CListBox	m_list;
    	CString	m_Text;
    	//}}AFX_DATA
    
    // Überschreibungen
    	// Vom Klassen-Assistenten generierte virtuelle Funktionsüberschreibungen
    	//{{AFX_VIRTUAL(EingabeDialog)
    	protected:
    	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV-Unterstützung
    	//}}AFX_VIRTUAL
    
    // Implementierung
    protected:
    
    	// Generierte Nachrichtenzuordnungsfunktionen
    	//{{AFX_MSG(EingabeDialog)
    	virtual BOOL OnInitDialog();
    	virtual void OnOK();
    	afx_msg void OnRadio1();
    	afx_msg void OnRadio2();
    	//}}AFX_MSG
    	DECLARE_MESSAGE_MAP()
    };
    
    //{{AFX_INSERT_LOCATION}}
    // Microsoft Visual C++ fügt unmittelbar vor der vorhergehenden Zeile zusätzliche Deklarationen ein.
    
    #endif // AFX_EINGABEDIALOG_H__9D97316B_2202_4375_8986_0CAEF1DB1F40__INCLUDED_
    

    Und hier EingabeDialog.cpp

    // EingabeDialog.cpp: Implementierungsdatei
    //
    
    #include "EingabeDialog.h"
    
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif
    
    /////////////////////////////////////////////////////////////////////////////
    // Dialogfeld EingabeDialog 
    
    EingabeDialog::EingabeDialog(CWnd* pParent /*=NULL*/)
    	: CDialog(EingabeDialog::IDD, pParent)
    {
    	//{{AFX_DATA_INIT(EingabeDialog)
    	m_Text = _T("Tierart:");
    	//}}AFX_DATA_INIT
    }
    
    void EingabeDialog::DoDataExchange(CDataExchange* pDX)
    {
    	CDialog::DoDataExchange(pDX);
    	//{{AFX_DATA_MAP(EingabeDialog)
    	DDX_Control(pDX, IDC_LIST1, m_list);
    	DDX_Text(pDX, IDC_EDIT1, m_Text);
    	//}}AFX_DATA_MAP
    }
    
    BEGIN_MESSAGE_MAP(EingabeDialog, CDialog)
    	//{{AFX_MSG_MAP(EingabeDialog)
    	ON_BN_CLICKED(IDC_RADIO1, OnRadio1)
    	ON_BN_CLICKED(IDC_RADIO2, OnRadio2)
    	//}}AFX_MSG_MAP
    END_MESSAGE_MAP()
    
    /////////////////////////////////////////////////////////////////////////////
    // Behandlungsroutinen für Nachrichten EingabeDialog 
    
    void EingabeDialog::OnOK() 
    {
    	// TODO: Zusätzliche Prüfung hier einfügen
    
    	CDialog::OnOK();
    }
    BOOL EingabeDialog::OnInitDialog()
    {
    	m_list.ResetContent();
    	m_list.InsertString(-1,"Daten");
    	return 1;
    }
    void EingabeDialog::OnRadio1() 
    {
    	// TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
    
    }
    
    void EingabeDialog::OnRadio2() 
    {
    	// TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
    
    }
    

    die beiden wurden vom Klassen-Assistent erstellt bis auf das OnInitDialog() und OnRadio1+2 und ("Tierart:"). Falls sich wer fragt wo das stdafx.h includiert ist, ich habe dies mit vs 6.0 kompiliert.



  • Archon schrieb:

    InsertString hat den Rückgabetyp von int.

    Aha. Das wusste ich auch schon. Ich meinte den Wert......



  • der hat den wert 0, sry


Anmelden zum Antworten