Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » SetItem und GetItemText

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
03.11.2006, 09:18 Uhr
MagicMerlin



Hi!
Ich brauch ein Programm, dass mir XML Files in einer Baumstruktur darstellt. In dieser Baumstruktur will ich nun direkt die einzelnen Items ändern und anschlissend in das XML File schreiben. So weit so gut. Um dies zu erreichen hab ich die untenstehenden Methoden bemüht (zugegebener Maßen nicht mein eigener Quelltext ) wenn ich das jetzt kompliliere, erscheinen folgender Fehler:
error C2065: 'SetItem' : nichtdeklarierter Bezeichner
error C2065: 'GetItemText' : nichtdeklarierter Bezeichner

hier der Quelltext:

C++:
void CXMLViewDlg::OnEndlabeleditTree1(NMHDR* pNMHDR, LRESULT* pResult)
{
    TV_DISPINFO* pTVDispInfo = (TV_DISPINFO*)pNMHDR;
    // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
    TVITEM & item = pTVDispInfo->item;
    *pResult = 1;

    if(item.pszText && CanSetLabelText(item))
    {
    SetItem(&item);  // ----------------------Fehler--------------------------
    *pResult = 0;
    }
}


bool CXMLViewDlg::CanSetLabelText(TVITEM &item)
{
    TRACE1(_T("CEditTreeCtrl::CanSetLabelText('%s')\n"), item.pszText);
    return true;
}

bool CXMLViewDlg::CanEditLabel(HTREEITEM hItem)
{
        
    TRACE1(_T("CEditTreeCtrl::CanEditLabel('%s')\n"), LPCTSTR(GetItemText  //Fehler(hItem)));
    return true;
}



Jetzt meine Frage: ich habe in der Hilfsdatenbank von Microsoft und auf einigen anderen Seiten im Netz nach einer Lösung gesucht, aber nichts gefunden. Kann mir da einer von euch weiterhelfen?

Merlin
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
03.11.2006, 12:50 Uhr
mmc20
puss in boots


hi, das setitem, und setitemtext bezieht sich mit sicherheit auf ein CTreeCtrl. da wo du den code her hast stand das sicher in einer classe die von CTreeCtrl (oder CTreeView) abgeleitet wurde.

weis jetzt nicht ob das dann funktioniert wenn du einfach die member deines TreeCtrls davorsetzt. ( m_tree1.SetItem(...) )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
03.11.2006, 23:03 Uhr
xXx
Devil


Doch sollte gehen ... sind Public-Funktionen ... aber trotzdem ... sowas packt man normalerweise in die Control Klasse ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
04.11.2006, 12:38 Uhr
MagicMerlin



Hi!
Erst mal vielen Dank! Hat geklappt Hab meine Variable davorgesetzt und jetzt läuft es. Hab jetzt nur noch ein Problem: Er meckert bei GetEditControl() immer noch. Hab eben mal noch ein bisschen Code hinzugefügt, dass ich meine Änderungen im Baum mit ENTER abschliessen kann. Im neuen Code kommt GetEditControl vor. Da hat die Member Variable nix gebracht ...


C++:
BOOL CXMLViewDlg::PreTranslateMessage(MSG* pMsg)
{
                                            
    if( pMsg->message == WM_KEYDOWN )
   {
      // When an item is being edited make sure the edit control
      // receives certain important key strokes
      if( GetEditControl() (pMsg->wParam == VK_RETURN || pMsg->wParam == VK_DELETE || pMsg->wParam == VK_ESCAPE || GetKeyState( VK_CONTROL)))
      {
      ::TranslateMessage(pMsg);
      ::DispatchMessage(pMsg);
      return TRUE;    // DO NOT process further
      }
    }

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
05.11.2006, 12:51 Uhr
xXx
Devil


Hmm.. machs ganz einfach: MAN KOPIERT NICHT EINFACH IRGENDEINEN QUELLCODE!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
05.11.2006, 22:49 Uhr
MagicMerlin



Ich bin leider Anfänger was Programmieren angeht. Im Moment versuch ich einfach mal kleine lauffähige Programme hinzubekommen. Und da muss ich auf bereits vorhandenen Quellcode von codeguru und codeproject zurückgreifen, um vorwärts zu kommen und zu kapieren, was einzelne Anweisungen bewirken ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
06.11.2006, 12:54 Uhr
xXx
Devil


Gib mal den Link zu dem Projekt (auf der page halt) ..... der scheint sich da nen Pointer auf nen Edit Control mit GetEditControl holen zu wollen ... oder irgendwas in der Art ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
06.11.2006, 16:14 Uhr
MagicMerlin



Hab den Code von Codeguru, weil ich Änderungen mit ENTER abschliessen will ...

www.codeguru.com/Cpp/controls/treeview/editinglabels/article.php/c731/
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
06.11.2006, 18:09 Uhr
xXx
Devil


Hmm... leite eine Klasse von CTreeCtrl ab und überschreib die PreTranslateMessage Funktion ... und setz da den Quellcode rein ... aja ... GetEditControl ist eine Funktion von CTreeCtrl ... s. http://msdn2.microsoft.com/ko-kr/library/27ye4f37(VS.80).aspx
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
07.11.2006, 11:26 Uhr
MagicMerlin



Danke ... habs nach langem rumprobieren hinbekommen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: