Zeile (mit div. Werten) vom Listenelement in verschieden Variablen speichern



  • 1.ja die von MFC
    2. Ne habe ich noch nie gemacht
    3. Will nur den Einhalt in der Zeile in verschiedene Variablen haben ist egal ob schön oder schick, das einfache wäre gut.
    4. Nur einmal auslesen und dann kann die Variablen weiter übergeben nur 1 Stelle.
    5. Ja in einer Schleife werden 3 neue Spaltenköüfe hinzugefügt der Rest steht in OnInitDialog

    Vielen Dank
    bumbumb



  • Okay, dann also quick&dirty 😉

    void CPADViewerDlg::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)
    {
    	int CurSel = m_liste.GetSelectionMark(); // Spart die Schleife
    
    	if (CurSel != -1) // Ist was gewählt?
    	{
    		//text des Selektierten Item holen und anzeigen
    		CString pageadress,layoutimage,breite,hoehe,positiontop,positionleft,ptop,pleft;
    		pageadress = m_liste.GetItemText(CurSel,0); //<-- Achtung, Index geändert
    		MessageBox(pageadress );
    		layoutimage = m_liste.GetItemText(CurSel,1); //<-- Achtung, Index geändert
    		MessageBox(layoutimage);
    	}
    }
    

    Das ist der Code von dir oben, nur um die Schleife gekürzt - du hattest die Funktion wohl nicht gefunden. 🙂
    Außerdem hattest du keine Prüfung, ob was markiert ist - ich bin bei sowas Pessimist. 😉
    Und wie du auf die komischen Indizees gekommen bist, kann ich mir nicht ausmalen. 😉

    Naja, wars das, was du gesucht hast?



  • hi,
    aber meine Spalte ist dynamisch mal habe ich mehr Spalten mal weniger ist es nicht so das layoutimage = m_liste.GetItemText(CurSel,1)-< 1 auch dynamisch sein muß ? Ist es durch deine änderung möglich den Ganzen Inhalt einer zeile in div. Variablen zu speichern?
    Breite,hoehe,pageadresse etc der gesamtenzeile in diese Variablen zu speichern?



  • 5. Ja in einer Schleife werden 3 neue Spaltenköüfe hinzugefügt der Rest steht in OnInitDialog

    Daraus hatte ich gelesen, dass du eine bekannte Anzahl Spalten hast.

    Wenn das nicht der Fall ist musst du dir die Anzahl irgendwo merken oder doch ein eigenes Control ableiten, was du nach der Anzahl fragen kannst. 🙂



  • und wie mache ich das hast du eine Beispiel?



  • Zeig, wo du Spalten hinzufügst (mit codetags bitte) und ich baus rein. 🙄



  • hier:
    CDialog::OnInitDialog();

    // Hinzufügen des Menübefehls "Info..." zum Systemmenü.

    // IDM_ABOUTBOX muss sich im Bereich der Systembefehle befinden.
    ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
    ASSERT(IDM_ABOUTBOX < 0xF000);

    CMenu* pSysMenu = GetSystemMenu(FALSE);
    if (pSysMenu != NULL)
    {
    CString strAboutMenu;
    strAboutMenu.LoadString(IDS_ABOUTBOX);
    if (!strAboutMenu.IsEmpty())
    {
    pSysMenu->AppendMenu(MF_SEPARATOR);
    pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
    }
    }
    m_liste.InsertColumn(0,"Page",LVCFMT_LEFT,50,0);

    m_liste.InsertColumn(1,"Top",LVCFMT_LEFT,180,0);

    m_liste.InsertColumn(2,"Left",LVCFMT_LEFT,100,0);

    und
    in meiner Funktion

    {
    CString test = hallo;
    m_liste.InsertColumn(0,"AD",LVCFMT_LEFT,50,0);
    m_liste.InsertColumn(1,"IM",LVCFMT_LEFT,50,0);

    }



  • CDialog::OnInitDialog();
    
    // Hinzufügen des Menübefehls "Info..." zum Systemmenü.
    
    // IDM_ABOUTBOX muss sich im Bereich der Systembefehle befinden.
    ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
    ASSERT(IDM_ABOUTBOX < 0xF000);
    
    CMenu* pSysMenu = GetSystemMenu(FALSE);
    if (pSysMenu != NULL)
    {
    CString strAboutMenu;
    strAboutMenu.LoadString(IDS_ABOUTBOX);
    if (!strAboutMenu.IsEmpty())
    {
    pSysMenu->AppendMenu(MF_SEPARATOR);
    pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
    }
    }
    m_liste.InsertColumn(0,"Page",LVCFMT_LEFT,50,0);
    
    m_liste.InsertColumn(1,"Top",LVCFMT_LEFT,180,0);
    
    m_liste.InsertColumn(2,"Left",LVCFMT_LEFT,100,0);
    m_nSpaltenzahl = 3;
    
    und
    in meiner Funktion
    
    {
    CString test = hallo;
    m_liste.InsertColumn(0,"AD",LVCFMT_LEFT,50,0);
    m_liste.InsertColumn(1,"IM",LVCFMT_LEFT,50,0);
    
    m_nSpaltenzahl += 2;
    
    }
    

    m_nSpaltenzahl musst du noch im Header deklarieren, es ist ein int.
    So, nun musst du alleine zurechkommen, ich bin weg... 🙂



  • Hallo,
    ich komme nicht weiter Bitte helfe mir!



  • So, nun lies mal bitte und merke es dir:
    1. Ich habe keine Kristallkugel, also musst du mir schon sagen, woran du scheiterst.
    2. Wenn ich mich schon extra abmelde, kannst du dir eventuell anhand der Zeit und des Tages denken, warum ich nicht mehr antworte: Ich hatte Wochenende.
    Da brauchst du mir auch keine Mail schicken, denn ich bin nicht verpflichtet, Gewehr bei Fuß zu stehen, wenn du niest.
    Außerdem bin ich das Forum nicht alleine, hier gibt es noch mehr Leute, die programmieren können.
    3. Ich mache nicht deine Aufgaben, denken musst du alleine. Oder bist du auch an ein Atemgerät angeschlossen?
    4. Ich habe weiter oben gelesen, dass du keine MSDN zum Nachgucken hast. Okay, dass erklärt, warum du auf so seltsame Ideen kommst. Aber schau doch mal über der Übersicht von MFC-Forum, da ist ein Link zur kostenlosen Online MSDN. Internet scheinst du ja zu haben.

    So, nun sammel dich nochmal und dann erklär mir bitte, woran du gerade scheiterst.
    Wenn du Quelltext postest, nutze bitte den Knopf [C/C++], sonst kann man das nicht lesen und ich werde es einfach überlesen, weil es auch in formatierter Form schwierig genug ist fremde Quelltexte zu lesen. Die von Anfängern sind da besonders schlimm, da die selten auf Einrückungen Rücksicht nehmen.


Anmelden zum Antworten