Windows Mobile

Türchen Nummer 5

Wer in der Adventszeit mal in die Innenstadt zum Einkaufen geht könnte meinen die Welt steht Kopf.
Da man das aber nun mal nicht verhindern kann heißt es also sich anzupassen.
Und wenn man schon dabei ist: Warum nicht auch mal die eigene Windows Mobile Anwendung auf den Kopf stellen?
Mit folgenden Codeschnipseln ist dies schnell getan:

C++

//DEVMODE Struktur anlegen und säubern
DEVMODE devMode;
memset(&devMode,0,sizeof(DEVMODE));
devMode.dmSize   = sizeof(DEVMODE);
//Bildschirmorientierung auslesen
devMode.dmFields = DM_DISPLAYORIENTATION;
ChangeDisplaySettingsEx(NULL, &devMode, NULL, CDS_TEST,  NULL);
//Aktuelle orientierung speichern
DWORD dwOld = devMode.dmDisplayOrientation;
//Bildschirmorientierung setzen
devMode.dmFields = DM_DISPLAYORIENTATION;
switch(devMode.dmDisplayOrientation)
{
case DMDO_0:
    devMode.dmDisplayOrientation = DMDO_180;
    break;
case DMDO_90:
    devMode.dmDisplayOrientation = DMDO_270;
    break;
case DMDO_180:
    devMode.dmDisplayOrientation = DMDO_0;
    break;
case DMDO_270:
    devMode.dmDisplayOrientation = DMDO_90;
    break;
}
ChangeDisplaySettingsEx(NULL,&devMode,NULL,CDS_RESET,NULL);
//Warten
Sleep(15000);
//Ursprüngliche orientierung wieder setzen
devMode.dmFields = DM_DISPLAYORIENTATION;
devMode.dmDisplayOrientation = dwOld;
ChangeDisplaySettingsEx(NULL,&devMode,NULL,CDS_RESET,NULL);


C#

Um dies in einer verwalteten Anwendung zu erreichen, gilt es, die Bibliothek „System.WindowsCE.Forms“ als Verweis hinzuzufügen.

using Microsoft.WindowsCE.Forms;

static void Main(string[] args)
{

    ScreenOrientation currentOrientation = SystemSettings.ScreenOrientation;
    switch (currentOrientation)
    {
        case ScreenOrientation.Angle0:
            SystemSettings.ScreenOrientation = ScreenOrientation.Angle180;
            break;
        case ScreenOrientation.Angle180:
            SystemSettings.ScreenOrientation = ScreenOrientation.Angle0;
            break;
        case ScreenOrientation.Angle270:
            SystemSettings.ScreenOrientation = ScreenOrientation.Angle90;
            break;
        case ScreenOrientation.Angle90:
            SystemSettings.ScreenOrientation = ScreenOrientation.Angle270;
            break;
        default:
            break;
    }
    System.Threading.Thread.Sleep(1500);
    SystemSettings.ScreenOrientation = currentOrientation;
    
}

Patrick & Peter

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s