Fragensteller
Window oder nicht Window, das ist hier die Frage

Frage
-
Toolbar, Ribbon etc. ... wenn ihr die programmieren müsst (z.B. das was im Word oder Explorer heute so oben drin hängt an Menü, Ribbon und so weiter) ... baut ihr da tendenziell eher viele Fenster ineinander oder eher Fensterklassen, die an mehreren Stellen z.B. Button zeichnen können und sich so verhalten, wie wenn da Fenster wären? (also, dass das Fenster mehrere Fenster/Button simuliert) ... ist es von der Performance her notwendig/besser, nicht einzelne Fensterchen zu machen? Hat Windows da irgendwann ein Problem?
Alle Antworten
-
Hallo erstmal,
wieso sollte ich lauter fensterchen zeichnen???
Wenn ich deine Frage richtig interpretiere meinst du, ob ich eine Komponente mit vielen click sensitiven Feldern habe, oder viele kleine Komponenten welche jede einzelnd ein click sensitives Feld hat....
Da kann ich nur Antworten: Hängt ganz vom Problem ab.
-
Hallo Rudolf,
es ist zwar schon lange her, das ich so etwas selbst programmiert habe - zuletzt für .NET 1.1 mit C#, als es so etwas noch nicht von Haus aus gab.
Aber generell braucht man nicht sehr viele Fensterchen. Nur dort, wo es ein Überlappen mit anderen Bereichen gibt, braucht man ein Fenster - z. B. beim DropDown oder beim Overflow einer klassischen Toolbar. Für eine "stinknormale" Schaltfläche reicht es, sie anhand der Position/Größe zu identifizieren und sie im jeweiligen Zustand zu zeichnen.
Allgemein formuliert: Aktuelle Windows Versionen sind zwar nicht mehr so empfindlich, was die Zahl der Handles angeht, aber übertreiben sollte man es nicht: http://stackoverflow.com/questions/951419/how-many-windows-handles-in-use-is-too-many
Zum Ribbon siehe z. B.: Windows 7 Goodies in C++: Introduction to the Ribbon - also selbst machen muß man nicht unbedingt ;)
Gruß Elmar
-
Da es für Ribbons sowohl eine OS implementierte Lösung gibt als auch die MFC + andere Anboeter (.NET) würde ich das nie selbst machen.
Grundsätzlich bei solchen komplexen Controls würde ich immer ein Window wählen und die Items darin einzeln in Klassen behandeln.
-
Danke für die Infos... mir gings übrigens nicht darum diese Elemente selber zu bauen, ich brauchte nur ein Beispiel, damit jeder weiss, von welchem Typ-Element ich spreche :-)
Die Idee mit dem einzelnen Fenster und der vielen "sensitiven Stellen" finde ich gut.
Rudolf