AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bildschirm drehen

Ein Thema von ddcool · begonnen am 30. Nov 2007 · letzter Beitrag vom 6. Dez 2007
Antwort Antwort
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#1

Re: Bildschirm drehen

  Alt 6. Dez 2007, 11:11
Zitat von ddcool:
Es ist halt nur so ich habe mich jetzt echt übertrieben viel mit der MSDN und sämtlichen Foren beschäftigt um eine Lösung zu finden. Leider ohne Erfolg. Ich bin nur immer wieder auf die Option dmDisplayOrientation gestoßen, die es ab XP geben soll. Jedoch bietet mir mein Delphi 2007 SP3 diese Funktion nicht an, es gibt nur die Druckervariante dmOrientation.
Der C++ Builder Explorer bietet anscheinend jedoch diese Funktion an:
Code:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
DEVMODEA DM;
DISPLAY_DEVICEA DD;

   ZeroMemory(&DD, sizeof(DD));
   DD.cb = sizeof(DD);
   if (0 != EnumDisplayDevices(0, 0, &DD, 0))
   {
      Caption = DD.DeviceName;

      ZeroMemory(&DM, sizeof(DM));
      DM.dmSize = sizeof(DM);
      if (0 != EnumDisplaySettings(DD.DeviceName, ENUM_CURRENT_SETTINGS, &DM))
      {
         DM.dmFields = DM_PELSWIDTH + DM_PELSHEIGHT + DM_DISPLAYORIENTATION;//?

         DM.dmDisplayOrientation = DMDO_180;//DMDO_DEFAULT;
         DM.dmPelsWidth= 1024;
         DM.dmPelsHeight= 768;

         switch(ChangeDisplaySettings(&DM,CDS_UPDATEREGISTRY))
         {
         case DISP_CHANGE_SUCCESSFUL:
            MessageBox(NULL, "DISP_CHANGE_SUCCESSFUL", "Hinweis", MB_OK);
            break;
         case DISP_CHANGE_BADFLAGS:
            MessageBox(NULL, "DISP_CHANGE_BADFLAGS", "Hinweis", MB_OK);
            break;
         case DISP_CHANGE_BADMODE:
            MessageBox(NULL, "DISP_CHANGE_BADMODE", "Hinweis", MB_OK);
            break;
         case DISP_CHANGE_BADPARAM:
            MessageBox(NULL, "DISP_CHANGE_BADPARAM", "Hinweis", MB_OK);
            break;
         case DISP_CHANGE_FAILED:
            MessageBox(NULL, "DISP_CHANGE_FAILED", "Hinweis", MB_OK);
            break;
         case DISP_CHANGE_NOTUPDATED:
            MessageBox(NULL, "DISP_CHANGE_NOTUPDATED", "Hinweis", MB_OK);
            break;
         case DISP_CHANGE_RESTART:
            MessageBox(NULL, "DISP_CHANGE_RESTART", "Hinweis", MB_OK);
            break;
         }
      }
   }
}
Sowie ich
Code:
DM.dmDisplayOrientation
auf DMDO_180 (= 2) setze kommt die Meldung DISP_CHANGE_BADMODE, bei DMDO_DEFAULT (= 0) DISP_CHANGE_SUCCESSFUL.
Mein Treiber unterstützt eigentlich das Drehen des Bildschirms.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz