CEdit eigene "Tags" anhängen
-
Hallo,
ich arbeite momentan an recht großen Eingabeformularen, für die diverse Validierungen vor dem Speichern notwendig sind.
In anderen Sprachen habe ich es so gelöst, dass ich jedem relevanten Control über einen Tag einen Namen gegeben habe und darüber alle Validierungen gegen eine DB automatisch erzeugt wurden.
Meine Dialoge bestehen im Wesentlichen aus von CEdit und CComboBox per Subclassing abgeleiteten Objekte.
Gibt es weiter "oben" in den Elternklassen der Objekte eine Art Tag-Eigenschaft, die ich nutzen könnte, oder muss ich den Tag in den Subclassen erzeugen.
Danke
-
Was meinst Du mit Tags anhängen.
Wenn Du Deine eigene CEdit,CComboBox Klasse ableitest, kannst Du darin uterbringen was Du willst.
-
Tag:
z.B. in VB6
dort kann man an fast jedes der Controls eine Zeichenkette als sogenanntes Tag anhängen.
http://www.vbforums.com/showthread.php?317182-Tag-property-in-VB6-0
http://en.kioskea.net/faq/19821-vb-net-manage-events-and-properties-for-multiple-controls
-
Was weiß ich von VB6... muss man das kennen?
Tags sind Label und werden für alles gebraucht/verwendet. HTML Tags etc.Es ändert nichts an meiner Antwort. Entweder:
- SetProp/GetProp
- In der eigenen Klasse
- Als Zeiger in GWL_USERDATA
- Einfach eine eigene Map, die ein Handle nimmt und einen String liefert.Und wahrscheinlich gibt es noch mehr Möglichkeiten.
-
Martin Richter schrieb:
Was weiß ich von VB6... muss man das kennen?
Tags sind Label und werden für alles gebraucht/verwendet. HTML Tags etc.Gibt's in WinForms auch.
Und "tag" heisst in diesem Zusammenhang einfach "Kennzeichnung"/"Markierung".- Als Zeiger in GWL_USERDATA
- Einfach eine eigene Map, die ein Handle nimmt und einen String liefert.Das einfach. Das gut
-
gibts bei C# und VB.net auch
Martin Richter schrieb:
..
- Als Zeiger in GWL_USERDATA
- Einfach eine eigene Map, die ein Handle nimmt und einen String liefert.
..ich werde das ganze sicherlich über Subclassing lösen, zumal ich ohnehin schon "subclassed" ComboBox und CEdit verwende.
Aber mich interessieren die beiden o.g. Ansätze ebenfalls.
Ich verstehe aber nicht, was Du mit
"Einfach eine eigene Map, die ein Handle nimmt und einen String liefert."
Hättet Ihr dazu ggf. einen link?Ein link zu: Als Zeiger in GWL_USERDATA
wäre ebenfalls nett.., falls es das hier nicht trifft:
http://www.codeproject.com/Articles/519247/Associating-a-Class-Structure-with-a-WindowDanke
-
ThomasC schrieb:
Ich verstehe aber nicht, was Du mit
"Einfach eine eigene Map, die ein Handle nimmt und einen String liefert."
Hättet Ihr dazu ggf. einen link?Weiss nicht was es da nicht zu verstehen gibt.
class MyWindow : ... { void SetTag(HWND controlHandle, std::string const& tag) { m_controlTagMap[controlHandle] = tag; } std::string GetTag(HWND controlHandle) { return m_controlTagMap[controlHandle]; } std::map<HWND, std::string> m_controlTagMap; // std::string nur als Beispiel };