Hi ihr,
ich entwickel gerade eine mobile Appl. für WinMob6.
Würde in diesem Rahmen gerne einen Screen permanent im Querformat darstellen.
Geht das? und wenn ja, wie?
Vielen Dank,
derMuh
Druckbare Version
Hi ihr,
ich entwickel gerade eine mobile Appl. für WinMob6.
Würde in diesem Rahmen gerne einen Screen permanent im Querformat darstellen.
Geht das? und wenn ja, wie?
Vielen Dank,
derMuh
Um es gleich vorwegzunehmen: Man sollte keine Applikation schreiben, die ein bestimmtes Format permanent erzwingt! (Auf dem PC zu vergleichen z.B, mit einem Fullscreenspiel, das auf 800x600 läuft und wenn man dann in eine andere App oder den Desktop wechselt, nicht die originale Auflösung zurücksetzt.)
Nun, in Windows Mobile gibt's zwei Parameter zu beachten:
SystemState.DisplayRotation und ScreenOrientation
Üblicherweise merkt man sich den Status der ScreenOrientation bei Applikationsstart und ändert diese auf die eigenen Bedürfnisse. Um auf Änderungen vom System zu reagieren, muss in den Events Form_Activated und Form_Deactivated die eigene, resp. die ursprüngliche ScreenOrientation gesetzt werden.
Hinzu kommt der Change Event des SystemStates DisplayRotation. Und zu guter letzt der Event Form_Resize, wo man dann die Form anhand der neuen Orientierung umordnet.
Wird bei grösseren GUIs recht mühsam. Typischerweise erstelle ich mir das GUI im Landscape Modus, kopiere die Location/Size der Controls aus dem Designer File und kopiere sie in die Form_Resize Methode. Das gleiche noch für den Portrait Modus.
if (width < height) Portrait else Landscape
Hier noch ein Beispiel Video mit source code.