windows mobile 自適應解析度

來源:互聯網
上載者:User

原文參見 : http://msdn.microsoft.com/zh-cn/magazine/dvdarchive/cc546609.aspx

 

節選部分:

 

適用於本機應用程式的解析度感知Windows Mobile 6 SDK 為使用機器碼編寫解析度感知應用程式提供了兩種主要資源:UILayout 樣本中的可重用 ScreenLib 類和 DeviceResolutionAware.h 標題。UILayout 樣本可在 Windows Mobile SDK 的 /Samples/Common/CPP/Win32 目錄中找到。DeviceResolutionAware.h 安裝在 Microsoft Visual Studio 安裝目錄的 /VC/ce/atlmfc/include 目錄下。ScreenLib 提供了一組協助函數,用於對齊螢幕上的元素。例如,您可以使用 DockControl 函數將給定控制項停靠到螢幕某個邊緣或所有四個邊緣來填充用戶端地區。OptimizeWidth 和 OptimizeHeight 函數將某個控制項(或多個控制項 — 對於 OptimizeWidth 函數)與顯示器對齊並調整其大小,左右或上下分別留出一小塊邊距。提供的其他函數可用於對齊控制項和將一組控制項調整為相同大小。在這些函數中,當大量使用基於表單的應用程式時,ScreenLib 可能最有用。DeviceResolutionAware.h 彌補了 ScreenLib 的不足,並提供了有助於構建更複雜的自適應應用程式的 20 多個函數和宏,首先引出的是可為 GetDisplayMode(可提供顯示特徵和功能)之類的自適應使用者介面提供構造塊的基本函數和宏。您會看到 SCALEX、SCALEY、SCALERECT 和 SCALEPT,它們為當前解析度適當縮放值。接下來,是可協助針對當前顯示特徵縮放映像的函數(如 StretchIcon 和 ImageList_StretchBitmap),以及可用於在方向發生更改時自動調整對話方塊布局的函數,如 RelayoutDialog。ScreenLib 和 DeviceResolutionAware.h 為構建本機解析度感知應用程式奠定了堅實的基礎。但同時,一定要注意,它們不是您的環境可能專屬的設計和解決方案的替代品,尤其是直接與顯示緩衝區進行互動或構建複雜 UI 時。

 

適用於託管應用程式的解析度感知對於Managed 程式碼應用程式,Microsoft .NET Compact Framework 提供了可協助建立解析度感知應用程式的一組顯示內容。與 ScreenLib 中的功能類似,.NET Compact Framework 提供了將指定控制項綁定到其父項邊緣的 Control.Dock 屬性。Control.Anchor 通過將控制項綁定到距其父項邊緣固定距離的位置提供了類似的功能。如果顯示器無法容納表單中的控制項,則使用 Control.AutoScroll 屬性將自動添加捲軸。此外,Control.AutoScale 跟蹤表單的設計解析度,並在 DPI 或解析度更改時動態縮放表單。正如您所料,對於較簡單的表單,Control.AutoScale 屬性很好用,但是,隨著表單變得越來越複雜,它能發揮的作用會變得越來越有限。對於較複雜的表單,這些屬性提供了一個起點,但它們不一定是完整的解決方案,尤其是在開始動態調整方向更改時。一種方法是使用 Orientation Aware Control (OAC),Microsoft 模式和實施方案小組已將其作為移動用戶端軟體工廠 (msdn2.microsoft.com/library/aa480471) 的一部分發布。OAC 提供了一種面向多個方向的簡單方法,尤其適用於基於表單的應用程式。安裝 OAC 後,您可以使用 Visual Studio 中的託管表單設計器先以縱向模式布置 UI,然後使用 OAC 旋轉為橫向模式。採用此新方向後,您可以根據需要橫向調整 UI。OAC 將跟蹤更改,以便當終端使用者處於縱向或橫向模式下在運行時使用適當的布局。但是,使用 OAC 也存在一些弊端。首先,從本質上而言,OAC 允許您設計特定的方向和解析度組合;因為支援的方向和解析度將來可能發生更改,所以不鼓勵使用此方法。其次,它不允許您明確設計不同的 DPI 或方形螢幕,方形螢幕最近在基於 Windows Mobile Standard 的 smartphone 裝置上很流行。最後,由於 OAC 會為每個螢幕建立和管理多個布局,在您添加更多的表單和增加複雜性時,效能下降會相當顯著(在極端的情況下,這會顯著增加您的應用程式啟動時間)。由於存在這些弊端,Windows Mobile 團隊一直鼓勵開發人員避免使用 OAC。該小組即將發布 Windows Mobile Line of Business Accelerator (go.microsoft.com/fwlink/?LinkId=115317) 的新版本,該版本包括一個可協助構建解析度感知應用程式的組件,其中的解析度感知應用程式套件組合含單個 UI 並使用停靠、定位和其他技術。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.