vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Entwickeln auflösungsunabhängiger Benutzerschnittstellen 
Autor: Sophus
Datum: 30.08.13 14:15

Hallo Leute,

mein Programm ist zu 80 Prozent fertig. Und nun dachte ich, es ist an der Zeit, meine Anwendung so zu gestalten, dass die Formulare und die darauf befindlichen Steuerelemente für die Verwendung auf Systemen, die mit verschiedenen Bildschirmauflösungen betrieben werden, angepasst werden. Ihr kennt es ja auch, dass nicht jeder die gleiche Auflösung und die gleiche Größe des Monitors besitzt. Wenn jemand mit einem NetBook arbeitet, kann es sehr schnell passieren, dass die Vor nicht vollständig angezeigt werden und einige Steuerelemente (Textboxen, ListView, Buttons, Frame, Label etc.) nicht mehr zu sehen sind.

Zu diesem Thema fand ich diese Seite
Entwickeln auflösungsunabhängiger Benutzerschnittstellen. Hierzu das passende Projekt von ihm: MultiResolution.zip. Der Autor spricht das Thema zu 99,9 Prozent an. Wieso nicht 100 Prozent? Das Projekt funktioniert tadellos. Aber nur solange, wie die Formen keine MDIChild = False sind.

In meiner Anwendung arbeite ich mit MDIForm, und die restlichen Formen haben MDIChild = True. Übertrage ich also das Projekt auf eine Form mit MDIChild = True, dann werden die Form und die darauf befindlichen Steuerelemente skaliert, aber in meinen Augen nicht richtig.

Wenn ich meine Steuerelemente auf meine Form platziere, und anschließend meine Bildschirmauflösung so gering wie es nur geht einstelle, und dann das Programm starte, dann wird es nicht so skaliert, dass auch bei niedrigster Auflösung alles auf dem Bildschirm zu sehen ist. Die Hälfte der Form wird dann weggeschnitten. Einige würden ja sagen, "Im Modul muss du es auf Form As MDIForm einrichtigen.". Habe ich auch schon probiert - klappt trotzdem nicht.

Jemand eine Idee, wie ich das mit Hilfe des Projektes hinbekomme?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Entwickeln auflösungsunabhängiger Benutzerschnittstellen 
Autor: Blackbox
Datum: 30.08.13 21:35

Hi,

das Problem ist ein altes VB - Problem. Du musst bei der Creation des MIDClient-Window ( das VB allerdings vor Dir verbirgt) das Flag: MDIS_ALLCHILDSTYLES setzen auf den MDI-Client als Creation->STYLE setzen. Du hast unter VB maximal Zugriff auf den MDI-Frame. Der MDI-Client ist das ganz dunkel graue Window innerhalb des MDI-Frame-Window().

Konkret heißt das: Du kannst das VB-Konzept für MDI nicht für Deine Belange verwenden, da selbst wenn Du das Flag erfolgreich setzen kannst, das Laufzeitsystem das wieder cancelt. Das heißt weiter: Du musst die MDI-Funktionalität selbst in die Hand nehmen. VB hat keinen Support für diesen neuen Konstrukt der MDI.

Genauer: Du musst MDi selbst handeln und kannst keine COM-Funktionalität mehr erwarten - es sei denn, Du generierst die neuen Clients zu Container-Window.

Fazit: Sehr schwer, kein Anfängerthema.

Beitrag wurde zuletzt am 30.08.13 um 21:40:14 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Entwickeln auflösungsunabhängiger Benutzerschnittstellen 
Autor: Sophus
Datum: 30.08.13 22:01

Hey Blackbox,

vielen Dank für deine Antwort. In der Tat klingt der Sachverhalt sehr kompliziert. Noch ist das Thema nicht so dringend, weil ich erst bei 80 Prozent meines Projekt angekommen sind. Es sind noch einige Wege zu erledigen, aber ich dachte einfach schon im Voraus. Mein Projekt sieht folgendermaßen aus. Die MDIForm1 soll immer im WindowsState Maximal angezeigt werden. Die darin befindlichen Formen mit MDIChild = True sollen ebenso im WindowsState Maximal gestartet werden, da die Formen alle im BorderStyle veränderbar sind. Die Formen sollen quasi die MDIForm1 ausfüllen. Und deswegen erscheint es mir wichtig, dass die Formen immer an die Bildschirmgröße angepasst werden muss, ansonsten hat man hässliche Scrollebars in der MDIForm1.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel