otočení formuláře ve WinMobile   zodpovězená otázka

VB.NET

Zdravím

Po dlouhé době řeším další problém. Potřebuji, aby se při spuštění aplikace otočil formulář do vodorovné polohy. Myslel jsem, že bude stačit u Designeru otočit Skin o 90°, ale očividně to nestačí. Když si aplikaci spustím v telefonu, neotočí se, ale objeví se posuvníky.

Díky za pomoc

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nic takového udělat nelze a ani k tomu není žádný důvod. Windows Mobile není žádné desktopové Windows, kde by se dalo libovolně manipulovat s okny.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nabyl jsem dojmu, že tazateli jde spíš o to, aby změnil orientaci displeje...

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Pokud je to tak, tak na to Compact Framework prostředky nemá. Jedině pomocí P/Invoke.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ano je to přesně tak. A jak mám použít P/Invoke? Prosím poraďte

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Najděte si na webu příslušnou API funkci a na MSDN její použití. Google vám tu dělat nebudu.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Děkuji za pomoc.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Hledal jsem dva dny a našel jsem pouze odkazy v C#, ale nic ve VB.NET. Další věc co jsem z odkazů nepochopil - API funkce si musím napsat sám do vlastního projektu pomocí čeho? Modulu, knihovny, třídy?

Našel jsem toto: ChangeDisplaySettingsEx, podle toho co jsem pochopil z různých popisů na netu, by to mělo umět skoro všechno co jde s displejem provézt.

Mě jde o to, aby při spuštění aplikace se otočil display na landscape z původního portrait. Jako když si nastavíte v Nastavení\Systém\Display\Orientace\Na šířku (pro praváky).

Našel jsem jakýsi DEVMODE jenže to bylo napsáno v C# a vypadalo to jako modul, jenže já netuším jak se co deklaruje v C# takže si to ani nemůžu přepsat do VB.NET.....

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Vše potřebné o P/Invoke:

http://msdn.microsoft.com/en-us/library/...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Opět se vracím k tomuto problému. Z vašeho odkazu jsem udělal DEVMODE do projektu. Pročetl jsem kde co jsem našel o DevMode, ale nikde jsem nenašel jak tedy mám tu orientaci displeje změnit.

Potřeboval bych tedy pomoct se samotnou změnou. Když napíšu např do Form1.Load() DM.DisplayOrientation = ... tak se mi podtrhne a vypíše se tato chyba (Constant cannot be the target of an assignment.)

Dále jsem zjistil jednu věc, že když si vytvořím proměnnou za DevMode, tak můžu jakoby nastavovat hodnoty v DevMode, ale nijak se neprojevují na spuštěném projektu.

Na MSDN jsou pro dmDisplayOrientation 4 možnosti mezi které patří DMDO_90 a právě toto já potřebuji.

S ničím podobným jsem ještě nepracoval, tekže budu rád za jakoukoliv radu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Řešením problému je přidání referencí Microsoft.WindowsMobile.Status a Microsoft.WindowsCE.Forms. Potom stačí použít řádek

SystemSettings.ScreenOrientation = ScreenOrientation.Angle270

Ale doporučuji přidat událost zavření formuláře a vrátit nastavení displeje zpět do původní polohy:-)

Díky za pomoc....

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback