Dyntabctrl in VS2005
-
Danke für die Antwort
wenn ich den Source entsprechend ändere kommt jetzt
error C2039: 'find' : is not a member of 'std'
...und einiges mehr
Kann es sein ,dass sich etwas bzgl der namespaces geändert hat?
(hatte irgandwann mal etwas gelesen weis aber nicht mehr wo )
-
Nein, find ist nachwievor in std.
Hast du algorithm includiert?ansonsten könnte man auch find ersetzen durch:
std::vector<CDialog*>::iterator beg,end; beg = m_tabs.begin(); end = m_tabs.end(); for(;beg != end && *beg != m_tabs[nItem];beg++); if(beg != end) m_tabs.erase(beg);phlox
-
Prima, die erste Fehlerzeile (m_tabs) ist verschwunden, bleibt nur noch Zeile 2 (m_titel):
m_tabs.erase(std::find(m_titel.begin(),m_titel.end(),m_titel[nItem]));Da kommt die Meldung
d:\c++ projekte\pmd toolbox newkernel\dyntabctrl.cpp(128) : error C2664: 'std::_Vector_iterator<_Ty,_Alloc> std::vector<_Ty>::erase(std::_Vector_iterator<_Ty,_Alloc>)' : cannot convert parameter 1 from 'ATL::CStringT<BaseType,StringTraits>' to 'std::_Vector_iterator<_Ty,_Alloc>' with [ _Ty=CString, _Alloc=std::allocator<CString> ] and [ BaseType=char, StringTraits=StrTraitMFC_DLL<char> ] and [ _Ty=CString, _Alloc=std::allocator<CString> ] No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
-
JPSelter schrieb:
Prima, die erste Fehlerzeile (m_tabs) ist verschwunden, bleibt nur noch Zeile 2 (m_titel):
m_tabs.erase(std::find(m_titel.begin(),m_titel.end(),m_titel[nItem]));Da kommt die Meldung
Ich denke dort musst Du ebenfalls schreiben:
m_titel.erase(std::find(m_titel.begin(),m_titel.end(),m_titel[item]));@ phlox81
ich bekomme jetz nur immer folgende Fehlermeldungen:c:\..\DynTabCtrl.h(47) : error C2061: syntax error : identifier 'vec' c:\..\DynTabCtrl.h(47) : error C2059: syntax error : ')' c:\..\DynTabCtrl.h(47) : error C2143: syntax error : missing ')' before ';' c:\..\DynTabCtrl.h(47) : error C2838: 'find' : illegal qualified name in member declaration ...(3mal) ... .\DynTabCtrl.cpp(24) : warning C4018: '<' : signed/unsigned mismatch .\DynTabCtrl.cpp(65) : warning C4267: 'argument' : conversion from 'size_t' to 'int', possible loss of data .\DynTabCtrl.cpp(71) : warning C4018: '>' : signed/unsigned mismatch .\DynTabCtrl.cpp(116) : warning C4018: '<' : signed/unsigned mismatch .\DynTabCtrl.cpp(122) : error C2065: 'item' : undeclared identifier .\DynTabCtrl.cpp(156) : error C2065: 'point' : undeclared identifier .\DynTabCtrl.cpp(162) : error C2228: left of '.x' must have class/struct/union type is ''unknown-type'' .\DynTabCtrl.cpp(162) : error C2228: left of '.y' must have class/struct/union type is ''unknown-type''
ich blick nicht mehr durch 
help
-
Das habe ich dort ja stehen und bekomme diese Fehlermeldung. Du musst "item" natürlich noch durch "nItem" ersetzen. Ich bin kurz vor dem Ziel, ich spüre es. Bloss lässt sich diese 2.Zeile (m_titel) nicht so wie Zeile 1 (m_tab) austauschen, weil m_titel kein Pointer ist sondern ein CString, das ist der Unterschied. Aber wie muss nun diese 2.Zeile heissen?
BOOL DynTabCtrl::DeleteItem(int nItem) { if(nItem > -1 && nItem < (int)m_tabs.size()) // edit by Peter Selter (signed/unsigned mismatch) { if(CTabCtrl::DeleteItem(nItem)) { delete m_tabs[nItem]; m_tabs.erase(std::find(m_tabs.begin(),m_tabs.end(),m_tabs[nItem])); // das meine ich mit 1.Zeile (ok) m_tabs.erase(std::find(m_titel.begin(),m_titel.end(),m_titel[nitem])); // das meine ich mit 2.Zeile (error) if(!m_tabs.empty()) { SetCurFocus(0); m_aktuellepos = 0; m_tabs[0]->ShowWindow(SW_SHOW); m_tabs[0]->SetFocus(); m_tabs[0]->Invalidate(); return TRUE; } } } return FALSE; }Du darfst ausserdem ein
#include <algorithm>in DynTabCtrl.h nicht vergessen.
-
Ich hab wohl bei all meinenm Herumexperimentieren einiges
verloren . Habe den Source von phlox81 noch einma eingebaut
und entsprechend geändertjetzt bekomme ich den gleichen Fehler

-
wer in m_titel sucht, sollte auch in m_titel löschen

m_titel.erase(std::find(m_titel.begin(),m_titel.end(),m_titel[nitem]));
-
Hoppla
Jetzt gehts, danke für Deine Hilfe!
-
aua
danke
-
Hi,
ich würde mich freuen wenn jemand dieses kleine framework was jetzt auf .Net läuft
zum download bereitstellen würde!
Ich brauche es auch
lg
pixel
-
pixel schrieb:
Hi,
ich würde mich freuen wenn jemand dieses kleine framework was jetzt auf .Net läuft
zum download bereitstellen würde!
Ich brauche es auch
lg
pixeldie neue Version ist bereits online:
DynTabCtrlphlox
-
hi, supper! Danke!

lg
pixel
-
Zu diesem DynTabCtrl im VS2005 hab ich auch noch eine Frage: Wenn ich das DynTabCtrl auf disabled setze (also .EnableWindow(false)), dann bleiben die Reiter in schwarzer Schrift, ich erwarte da eine graue Schrift. Ist das generell mit TabCtrls oder ein Fehler im DynTabCtrl? Das disablen funktioniert, bloss sieht man es nicht auf den ersten Blick, was etwas verwirrend ist.
-
Hi,
hab eine kleine Funktion(source von codeproject.com) die meine Dialogelemente mit
vergrössert wenn ich das Dialog vergrössere!
Alle Controlls gehen mit, nur das DynTabCtrl vergrossert sich nicht, es reagiert nicht auf resize!?Hat da jemand schon welche erfahrung gemacht?
Der Code der dafür sorgt das alle Dialog Elemente neu positioniert werden wenn
das Dialog vergrössert oder verkleinert wird ist auf www.codeproject.com unterETSLayoutDialog
zu finden(falls jemand sowas braucht!?)
lg
pixel
-
Da bekommt Phlox81 aber wieder eine Fragewelle

-
Was das disablen angeht, keine Ahnung, könnt ihr selber kein C++ und MFC?
Und wie disabled ihr das Tab? Kann mich nicht erinnern, das jemals implementiert zu haben...Was das resizen angeht, OnSize ist nicht überschrieben, müsste eigentlich klappen,
kenn aber auch hier nicht die Details, habs in den ganzen Jahren wo ich MFC
gemacht habe nie gebraucht...Ich programmier seit einem Jahr wxWidgets, da hat man solche Probleme nicht
*hint hint*
-
Disablen: Siehe eMail.
Sobald ich mit diesem Projekt hier fertig bin, werde ich nie wieder MFC benutzen... es ist eine Katastrophe. Beispiel: Ich muss in 4 Tagen fertig sein, aber ich habe noch etwa 30 Buttons und 200 Statics korrekt zu resizen. Das kostet Zeit... wie sehr ich doch Delphi liebe...

-
JPSelter schrieb:
Disablen: Siehe eMail.
Sobald ich mit diesem Projekt hier fertig bin, werde ich nie wieder MFC benutzen... es ist eine Katastrophe. Beispiel: Ich muss in 4 Tagen fertig sein, aber ich habe noch etwa 30 Buttons und 200 Statics korrekt zu resizen. Das kostet Zeit... wie sehr ich doch Delphi liebe...

wxWidgets macht das automatisch

Und ist plattformunabhängig
-
JPSelter schrieb:
Disablen: Siehe eMail.
Kannst Du diese Mail bitte auch veröffentlichen?
Ich glaube es wären Dir mindestens 2 Leute dankbar
-
jup, der hat recht!
