天天看點

用本地代碼實作螢幕方向自适應的Windows Mobile程式

    該文章使用字謎遊戲Crossword為背景,在沒有處理裝置portrait/landscape模式之前,該程式是運作在portrait模式下的,然而在landscape模式下,有些控件就不在螢幕顯示的範圍之内了,而且背景看上去也不對了,如下圖1所示:

用本地代碼實作螢幕方向自适應的Windows Mobile程式

圖1:未經處理情況下的程式界面

    解決的方法可以分為幾個步驟:

1. 準備一張320*320大小的背景圖檔替換掉原來的240*320的圖檔。

2. 在OnPaint事件進行中,修改添加背景圖檔的代碼如下:

BitBlt(hDC, 0, 0, 320, 320, hMemDC, 0, 0, SRCCOPY); 

3. 在WndProc 的WM_SIZE進行中,修改text box的寬度,代碼如下:

用本地代碼實作螢幕方向自适應的Windows Mobile程式

Code

4. 寫一個函數來判斷目前螢幕的高度是否小于320,代碼如下:

用本地代碼實作螢幕方向自适應的Windows Mobile程式

5. 在OnPaint事件進行中,添加提示框的處理,代碼如下:

用本地代碼實作螢幕方向自适應的Windows Mobile程式

6. 添加各個對話框在landscape模式下的對應情況,也就是在資源的對話框目錄中添加對應的***_WIDE對話框,并且對它的控件做相應調整。

7. 在各自對話框的WM_SIZE進行中,修改代碼,使其能夠做出螢幕模式的适應。代碼如下:

用本地代碼實作螢幕方向自适應的Windows Mobile程式

    然後,重新編譯我們修改後的程式,并且在模拟器中進行調試,效果如下圖2所示:

用本地代碼實作螢幕方向自适應的Windows Mobile程式

圖2:經過修改後的程式界面

參考連結:

<a href="http://www.cnblogs.com/allenlooplee/archive/2008/12/21/1359421.html">WM有約(四):處理螢幕旋轉</a>

<a href="http://www.cnblogs.com/dearsj001/archive/2008/11/12/1332374.html">Docking and Anchoring Controls on Windows Mobile</a>

<a href="http://www.cnblogs.com/dearsj001/archive/2008/12/31/1366127.html">建立Windows Mobile上相容性好的UI程式</a>

<a href="http://msdn.microsoft.com/en-us/library/aa454895.aspx">Developing Orientation-Aware and Resolution-Aware Windows Mobile-based Applications in Native Code</a>

本文轉自施炯部落格園部落格,原文連結:http://www.cnblogs.com/dearsj001/archive/2009/02/13/1390172.html,如需轉載請自行聯系原作者

繼續閱讀