bigpoint Geschrieben 6. November 2002 Teilen Geschrieben 6. November 2002 Weis jemand ob es überhaupt so eine Methode oder Lösung gibt wie man mit VC++ so ein Dialog oder SDI erstellt das er sich automatisch zu Bildschirmauflösung anpaßt ?? Ich weis das man durch die int breite = GetSystemMetrics(SM_CXSCREEN); int hoehe = GetSystemMetrics(SM_CYSCREEN); die Bildschirmauflösung abfragen kann aber wie sage ich dem Anwendung das er auf 800*600 genau so groß sein soll wie bei 1280*1024 ??? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Goos Geschrieben 6. November 2002 Teilen Geschrieben 6. November 2002 Hast schonmal nach den Infos geschaut, die du mit GetDeviceCaps() bekommen kannst? Da sind dann auch Pixel pro Inch dabei....von daher kannst deine groessen dann auch berechnen. Goos Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigpoint Geschrieben 6. November 2002 Autor Teilen Geschrieben 6. November 2002 irgend wie funk es nicht, also ich bekomme zwar die Parameter aber was weiter Hat da jemand schon Erfahrungen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
gugelhupf Geschrieben 6. November 2002 Teilen Geschrieben 6. November 2002 Ich kenn das Problem. Es geht darum einen Dialog und seine Steuerelemente je nach Auflösung anzupassen. Hab mich echt totgesucht und in div. Foren nachgefragt. Ergebnis: no chance...man müsste alle Steuerelemente einzeln behandeln Aber ich lass mich gern eines Besseren belehren. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigpoint Geschrieben 6. November 2002 Autor Teilen Geschrieben 6. November 2002 Originally posted by gugelhupf Ich kenn das Problem. Es geht darum einen Dialog und seine Steuerelemente je nach Auflösung anzupassen. Hab mich echt totgesucht und in div. Foren nachgefragt. Ergebnis: no chance...man müsste alle Steuerelemente einzeln behandeln Aber ich lass mich gern eines Besseren belehren. Auch mein Verdacht -> sollte Microsoft nachdenken sollte Microsoft nachdenken über dieses Problem , oder ??? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 7. November 2002 Teilen Geschrieben 7. November 2002 Hi, warum machst du`s nicht einfach andersrum und passt die Auflösung deinem Programm an? Gruß Guybrush Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
gugelhupf Geschrieben 7. November 2002 Teilen Geschrieben 7. November 2002 Originally posted by Guybrush Threepwood Hi, warum machst du`s nicht einfach andersrum und passt die Auflösung deinem Programm an? Gruß Guybrush naja das machen ja manche progs auch, dass sie beim start die auflösung ändern...aber ehrlich gesagt machen das die wenigsten... zumindest wäre ne abfrage des systems und der users nötig, ob der das überhaupt will ! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 7. November 2002 Teilen Geschrieben 7. November 2002 zumindest wäre ne abfrage des systems und der users nötig, ob der das überhaupt will ! Warum? Wenn man das mit DirectX macht dann können 1. nur Auflösungen eingestellt werden die von der Hardware unterstützt werden und 2. kann man bei beenden den Ursprungszustand ganz einfach wieder zurücksetzen. Ich meine klar kann mann ne Abfrage reinbringen, aber es ist nicht unbedingt nötig. Gruß Guybrush Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigpoint Geschrieben 7. November 2002 Autor Teilen Geschrieben 7. November 2002 Ne leider die Kunden für die ich es mache wollen es einfach nicht, aber es klingt sehr interessant und für ein kleines Beispiel oder par tipps werde ich dankbar Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 7. November 2002 Teilen Geschrieben 7. November 2002 Einfach mal so aus dem Bauch heraus: #include <windows.h> #include <crtdbg.h> #include <ddraw.h> IDirectDraw* lpDD; IDirectDraw2* lpDD2; DDSURFACEDESC surface; main() { //DirectDraw Objekt erstellen if (DirectDrawCreate(NULL,&lpDD,NULL) != DD_OK) { Fehler("Direct Draw Objekt konnte nicht erstellt werden!"); return -1; } //Neures Interface laden if (lpDD->QueryInterface(IID_IDirectDraw2,(void**)&lpDD2) != DD_OK) { Fehler("Direct Draw 2 Objekt konnte nicht geladen werden!"); lpDD->Release(); } //Altes Interface wieder freigeben lpDD->Release(); //SURFACEDESC Struktur vorbereiten memset(&surface,0,sizeof(DDSURFACEDESC)); surface.dwSize = sizeof(DDSURFACEDESC); surface.dwFlags = DDSD_HEIGHT | DDSD_WIDTH; //Auflösung in der Struktur speichern hResult = lpDD2->GetDisplayMode(&surface); if (hResult != DD_OK) { Fehler("Auflösung konnte nicht ermittlet werden!"); return -1; } //Wenn die Auflösung nicht 1024*768 ist if ((surface.dwHeight != 768) || (surface.dwWidth != 1024)) { //Die Auflösung anpassen hResult = lpDD2->SetDisplayMode(1024,768,32,0,0); if (hResult == DDERR_INVALIDMODE) { _CrtDbgReport(_CRT_ERROR,0,2015,"dbtest","%i",hResult); Fehler("Auflösung konnte nicht verändert werden!"); return -1; } } //Das Hauptprogramm //Am Ende die Auflösung wieder zurückstellen if (lpDD2->RestoreDisplayMode() != DD_OK) { Fehler("Auflösung konnte nicht wiederhergestellt werden!"); } //Und lpDD2 wieder freigeben lpDD2->Release(); return 0; } [/PHP] Bei irgendwelchen Fragen, einfach fragen:D Gruß Guybrush Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
gugelhupf Geschrieben 7. November 2002 Teilen Geschrieben 7. November 2002 Ich frage mich nur warum es denn grosse softwarepakete auch nicht "handeln" ?! Bei Tobit, Office u.ä. erhät man auch "unschöne" dialoge die sich nicht anpassen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 7. November 2002 Teilen Geschrieben 7. November 2002 Ich frage mich nur warum es denn grosse softwarepakete auch nicht "handeln" ?! War ja auch nur ein Lösungsvorschlag. Ist nicht der beste Weg, aber der schnellste. Gruß Guybrush Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
gugelhupf Geschrieben 7. November 2002 Teilen Geschrieben 7. November 2002 Originally posted by Guybrush Threepwood War ja auch nur ein Lösungsvorschlag. Ist nicht der beste Weg, aber der schnellste. Gruß Guybrush Es stellt sich halt die Frage, ob dieses Vorgehen sinnvoll ist. Man kann ja generell nicht davon ausgehen, dass eine best. Auflösung auf diesem Rechner auch läuft. Grafikkarte, Monitor etc. Es wäre schade, wenn eine Software nur deswegen nicht laufen sollte. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 7. November 2002 Teilen Geschrieben 7. November 2002 Das geht in die Richtung: http://www.codeproject.com/dialog/resizabledialog.asp Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 7. November 2002 Teilen Geschrieben 7. November 2002 Das ist wohl war, kommt halt immer drauf an was das für ein Programm ist und für wehn es ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
gugelhupf Geschrieben 7. November 2002 Teilen Geschrieben 7. November 2002 Originally posted by Klotzkopp Das geht in die Richtung: http://www.codeproject.com/dialog/resizabledialog.asp Richtig ! Hatte ich damals auch schon probiert, leider sehr, sehr mühselig. Auszug: "add an anchor for each control you... " Wär doch mal was hier ne eigene Klasse zu schreiben die sich auf eine Dialogklasse bezieht Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigpoint Geschrieben 7. November 2002 Autor Teilen Geschrieben 7. November 2002 man kann auch so http://www.akinstaller.de/ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.