青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 2, 文章 - 73, 評(píng)論 - 60, 引用 - 0
數(shù)據(jù)加載中……

開(kāi)發(fā)識(shí)別屏幕方向的應(yīng)用程序

開(kāi)發(fā)識(shí)別屏幕方向的應(yīng)用程序
發(fā)布日期 : 8/17/2004 | 更新日期 : 8/17/2004

Microsoft

適用范圍:
Windows Mobile™ 2003 第二版軟件
基于 Windows Mobile™ 的 Pocket PC

摘要:了解基于 Windows Mobile 的設(shè)備如何在橫豎向模式下顯示、該功能的后臺(tái)情況、為該功能開(kāi)發(fā)移動(dòng)應(yīng)用程序的相關(guān)信息、開(kāi)發(fā)者指南中新的建議和示例。

請(qǐng)從 Microsoft 下載中心下載 Crossword.msi

本頁(yè)內(nèi)容

引言 引言
更改屏幕方向 更改屏幕方向
應(yīng)用程序窗口如何識(shí)別屏幕方向 應(yīng)用程序窗口如何識(shí)別屏幕方向
刷新屏幕內(nèi)容 刷新屏幕內(nèi)容
RelayoutDialog RelayoutDialog
原有應(yīng)用程序的特性 原有應(yīng)用程序的特性
安裝警告消息 安裝警告消息
結(jié)論 結(jié)論

引言

Windows Mobile 2003 第二版軟件為 Pocket PC 引入了新的功能,使基于 Windows Mobile 的設(shè)備可在橫豎向兩種模式下顯示。在有些設(shè)備中,橫向是默認(rèn)的顯示模式。此外,用戶將能在使用中讓屏幕在兩種方向之間切換,而不必重新設(shè)置設(shè)備。

本文提供了有關(guān)該功能的后臺(tái)信息、并介紹了開(kāi)發(fā)適用于橫豎向屏幕的移動(dòng)應(yīng)用程序的相關(guān)信息。此外,還向開(kāi)發(fā)者提供了新的指南(包括一些建議和示例)供參考。

更改屏幕方向

通常,屏幕方向僅在用戶使用“屏幕方向”控制面板,或按下某硬件按鈕來(lái)旋轉(zhuǎn)屏幕時(shí)才改變。

此外,應(yīng)用程序也可通過(guò) ChangeDisplaySettingsEx 函數(shù)以編程方式更改屏幕方向。該函數(shù)使用方法見(jiàn) MSDN 中“Rotating the Content of the Screen”(旋轉(zhuǎn)屏幕內(nèi)容的方向)一文。例如,如果使用的應(yīng)用程序只能在豎向模式下操作,則可通過(guò)編程改變屏幕方向。但是,如果屏幕方向的改變很突然,通過(guò)編程改變屏幕方向會(huì)讓用戶搞不清楚。應(yīng)用程序應(yīng)始終要求用戶在旋轉(zhuǎn)屏幕前確認(rèn)顯示模式。

為了在豎向模式下顯示,將 dmDisplayOrientation 字段中的 DEVMODE 結(jié)構(gòu)設(shè)置為 DMDO_0。對(duì)于右手橫向模式,使用 DMDO_270。對(duì)于左手橫向模式,使用 DMDO_90。

應(yīng)用程序窗口如何識(shí)別屏幕方向

屏幕方向如果改變,或當(dāng)“輸入面板”出現(xiàn)時(shí),應(yīng)用程序的所有全屏頂層窗口都要適應(yīng)新的取向。

注意: 如果窗口的上、左、右坐標(biāo)在工作區(qū)域邊界之上或之外,該窗口被認(rèn)為是全屏窗口。工作區(qū)域是標(biāo)題欄下的整個(gè)屏幕區(qū)域。頂層窗口是無(wú)父窗口的窗口,即有一個(gè) NULL 父窗口。

如果窗口大小改變,窗口將收到 WM_SIZE 通知。WM_SIZE 消息的 lParam 參數(shù)的低位字指定了客戶端區(qū)域的新寬度,高位字指定了客戶端區(qū)域的新高度。應(yīng)用程序應(yīng)識(shí)別窗口大小的改變,并相應(yīng)地更新窗口布局。此外,也應(yīng)重新確定所包含任何子窗口的布局。

如果應(yīng)用程序沒(méi)有全屏窗口,它收不到 WM_SIZE 通知。相反,它應(yīng)在 wParam 參數(shù)設(shè)置為 SETTINGCHANGE_RESET 時(shí)監(jiān)聽(tīng) WM_SETTINGCHANGE消息。

注意: 如果應(yīng)用程序有頂層窗口,或使用 SHHandleWMSettingChangeSHInitDialogSHFullScreen 方法創(chuàng)建了窗口,它會(huì)同時(shí)收到 WM_SIZEWM_SETTINGCHANGE 消息。但是,如果應(yīng)用程序創(chuàng)建了子窗口,子窗口收不到 WM_SIZE 消息,即使子窗口是全屏窗口。

以下 WindowProc 模板的代碼示例利用了 WM_SIZEWM_SETTINGCHANGE 消息。

    switch (uMessage)
    {
        case WM_SIZE:
            // 重新計(jì)算所有子窗口的布局;重新設(shè)置
            // 列出視圖和編輯框的大小,重新確定按鈕、
            // 靜態(tài)文字和其他控件的位置。
            break;
        case WM_SETTINGCHANGE:
            if (SETTINGCHANGE_RESET == wParam) {
                // 屏幕方向改變。此時(shí)
                // 執(zhí)行 WM_SIZE 不能執(zhí)行的處理,
// 如重新調(diào)整全屏子窗口的大小,對(duì)
// 頂層窗口調(diào)用 MoveWindow 等等。
// 如果不需要處理 WM_SETTINGCHANGE 消息,可以
// 忽略它。
            }
            break;
      }

刷新屏幕內(nèi)容

使用 Windows Mobile 2003 第二版軟件時(shí),Pocket PC 的最小顯示區(qū)域是 240 個(gè)像素高和 240 個(gè)像素寬。編程人員應(yīng)保證應(yīng)用程序在最低配置下可用。常見(jiàn)問(wèn)題是,菜單在豎向顯示模式下可能符合要求,但在橫向顯示模式不符合要求。如果這樣,需要在兩個(gè)菜單之間重新排列菜單項(xiàng)。

刷新應(yīng)用程序的屏幕內(nèi)容時(shí),可以使用下列 4 個(gè)編程選項(xiàng):

  • 調(diào)整內(nèi)容適應(yīng)窗口大小

  • 更改內(nèi)容

  • 更改布局

  • 設(shè)計(jì)所有布局通用的 240x240 正方形。

1 顯示了各方法(調(diào)整內(nèi)容適應(yīng)窗口大小有兩個(gè)示例)在 Pocket PC 的 Windows Mobile 軟件中刷新屏幕內(nèi)容的示例:

表 1:豎向圖與橫向圖的屏幕刷新選項(xiàng)

屏幕刷新選項(xiàng)

豎向

橫向

調(diào)整內(nèi)容適應(yīng)窗口大小

重新調(diào)整日歷網(wǎng)格單元的大小以適用工作區(qū)域。

 

screen_orientation_awareness01

 

screen_orientation_awareness02

調(diào)整內(nèi)容適應(yīng)窗口大小

“內(nèi)存”設(shè)置控制面板將列表框重新設(shè)置為最大尺寸,然后重新確定它四周所有界面元素的位置。

 

screen_orientation_awareness03

 

screen_orientation_awareness04

更改內(nèi)容。

“日歷”在橫向顯示模式下一次只顯示 8 個(gè)月份。

 

screen_orientation_awareness05

 

screen_orientation_awareness06

更改布局。

在橫向顯示模式下,Windows Media Player 的按鈕出現(xiàn)在視頻內(nèi)容的一側(cè),不是在下端。

 

screen_orientation_awareness07

 

screen_orientation_awareness08

設(shè)計(jì)正方形。

日歷“選項(xiàng)”對(duì)話框的整個(gè)內(nèi)容在兩種取向模式下都顯示在 240x240 的正方形區(qū)域內(nèi)。

 

screen_orientation_awareness09

 

screen_orientation_awareness10

請(qǐng)記住,要盡可能的設(shè)計(jì)通用布局,這樣應(yīng)用程序可處理任意尺寸和任何寬高比的顯示內(nèi)容。這意味著盡可能避免分開(kāi)設(shè)計(jì)橫豎向模式。如果必須設(shè)計(jì)不同的橫豎向布局模式,不要簡(jiǎn)單地因屏幕寬度大于屏幕高度,而假設(shè)應(yīng)用程序能在橫向模式下顯示。例如,設(shè)備屏幕寬可能有 321 個(gè)像素,而屏幕高有 320 個(gè)像素。在這樣的設(shè)備上,應(yīng)用程序也許能以橫豎向兩種模式顯示,應(yīng)選擇應(yīng)用程序最適用或首選的模式,這可能是豎向模式。

RelayoutDialog

在 CrosswordSample 應(yīng)用程序中,有一個(gè)函數(shù)是 RelayoutDialog,它可幫助重新設(shè)置、重新定位對(duì)話框中的子控件。例如,假設(shè)對(duì)話框有兩個(gè)對(duì)話模板,一個(gè)用于橫向,一個(gè)用于豎向。如果這兩個(gè)模板中的控件相同,且有相同的控件 ID,則可使用下列代碼作為 WM_SIZE 處理程序:

case WM_SIZE:
RelayoutDialog(g_hInst, hDlg, InWideMode() ?
MAKEINTRESOURCE(IDD_TOOLS_OPTIONS_1_WIDE) :
MAKEINTRESOURCE(IDD_TOOLS_OPTIONS_1));

注意: 定義為 IDC_STATIC 的控件具有相同的控件 ID,所以如果有多個(gè) IDC_STATIC控件,應(yīng)當(dāng)把它們重命名為 IDC_STATIC_1IDC_STATIC_2等。

如果靜態(tài)控件在新布局中也發(fā)生了變換,RelayoutDialog 會(huì)同時(shí)更新靜態(tài)控件的文本和位圖。

原有應(yīng)用程序的特性

當(dāng)用戶在基于 Windows Mobile 2003 第二版的 Pocket PC 上運(yùn)行舊應(yīng)用程序時(shí),用戶還保留了以往在豎向模式下的經(jīng)驗(yàn),但豎向模式與橫向模式的經(jīng)驗(yàn)將有所不同。在橫向模式下,對(duì)話框的下半部分可能跑出屏幕底線之外。為了解決這個(gè)問(wèn)題,系統(tǒng)將顯示一個(gè)垂直滾動(dòng)條,允許用戶滾動(dòng)屏幕。只有存在常出現(xiàn)于豎向屏幕底部的控件時(shí),才出現(xiàn)垂直滾動(dòng)條。如果不出現(xiàn),則不出現(xiàn)滾動(dòng)條。

應(yīng)用程序是否是“原有”應(yīng)用程序,取決于可執(zhí)行文件頭中的子系統(tǒng)版本。默認(rèn)情況下,使用 Windows Mobile 2003 SDK 編譯的應(yīng)用程序中的子系統(tǒng)版本號(hào)為 4.20 或更低版本號(hào),在將來(lái)版本的 Pocket PC SDK 中子系統(tǒng)版本號(hào)為 4.21 或更高版本號(hào)。子系統(tǒng)版本號(hào)為 4.20 或低于 4.20 時(shí)被認(rèn)為是舊應(yīng)用程序,可以看見(jiàn)滾動(dòng)條。

知道了這種特性,用戶就能通過(guò)滾動(dòng)條看見(jiàn)隱藏的圖像(假設(shè)不能直接看見(jiàn)的圖像和控件)。此外,您仍可以使用這種技術(shù)快速存儲(chǔ)或檢索圖像,但應(yīng)在屏幕的左側(cè)完成這項(xiàng)工作。

理想情況下,對(duì)話框不應(yīng)需要滾動(dòng)條。為此,最好的方法是:使對(duì)話框控件在豎向模式下不被“輸入面板”覆蓋,故最好設(shè)計(jì) 240x240 的最低分辨率。

安裝警告消息

當(dāng)在基于 Windows Mobile 的可旋轉(zhuǎn)屏幕的 Pocket PC 上安裝了舊應(yīng)用程序時(shí),將出現(xiàn)以下消息,如 11 所示:

screen_orientation_awareness11

11 :安裝警告消息

這個(gè)對(duì)話告訴用戶,他們要使用的應(yīng)用程序程序可能無(wú)法識(shí)別正方形屏幕旋轉(zhuǎn),因此不能在橫向模式下正確顯示。只有 VersionMin 值(它指定應(yīng)用程序支持的最低操作系統(tǒng)版本號(hào))低于 4.21,才顯示這個(gè)對(duì)話。

由于將 VersionMin 設(shè)置為 4.21 將阻止把應(yīng)用程序安裝在基于舊 Windows Mobile 的 Pocket PC 上,所以建議把BuildMax 值(不常用)設(shè)置為表 2 中的值,禁用此消息:

表 2:BuildMax 值

0xA0000000

應(yīng)用程序支持正方形屏幕(240x240 像素)。

0xC0000000

應(yīng)用程序支持屏幕旋轉(zhuǎn)。

0xE0000000

應(yīng)用程序支持正方形屏幕旋轉(zhuǎn)。

這些參數(shù)可通過(guò)編輯 INF 文件的 [CEDevice] 部分(cabwiz 用來(lái)生成 CAB 文件)來(lái)更改。有關(guān) INF 文件格式的詳細(xì)信息,請(qǐng)參閱 MSDN 文檔。

結(jié)論

開(kāi)發(fā)基于 Windows Mobile 2003 第二版軟件的 Pocket PC 的應(yīng)用程序,要求取消關(guān)于屏幕方向的假設(shè)。使用本文提供的簡(jiǎn)單指南,您可以編寫安裝和運(yùn)行于豎向、橫向和正方形屏幕上的應(yīng)用程序。

 

posted on 2008-01-23 11:30 郭天文 閱讀(844) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Windows Mobile

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            夜夜嗨av一区二区三区网页| 欧美日韩一卡二卡| 亚洲欧美三级伦理| 老司机久久99久久精品播放免费| 午夜亚洲视频| 欧美乱大交xxxxx| 欧美激情一区二区| 国产在线欧美| 香蕉尹人综合在线观看| 亚洲天堂久久| 欧美日韩一级黄| 亚洲激情在线观看| 亚洲国产成人久久综合一区| 亚洲一区二区三区三| 一区二区日韩免费看| 欧美国产精品人人做人人爱| 久久久久88色偷偷免费| 国产日韩欧美日韩| 香蕉乱码成人久久天堂爱免费| 亚洲一级一区| 欧美视频在线免费| 99视频一区| 亚洲综合国产| 国产欧美91| 欧美一级黄色录像| 久久亚洲色图| 在线成人黄色| 欧美va亚洲va国产综合| 亚洲国产欧美一区| 一本色道久久综合狠狠躁的推荐| 欧美高清视频一区二区| 亚洲激情影视| 亚洲校园激情| 国产精品一区二区三区久久| 亚洲综合社区| 久久久在线视频| 亚洲国产免费看| 欧美高清在线视频| 99成人在线| 久久黄色影院| 亚洲二区精品| 欧美日韩在线高清| 亚洲欧美日韩一区二区在线| 久久久久久9999| 亚洲激情黄色| 欧美视频一区| 久久成人国产| 亚洲国产一区二区在线| 亚洲一区二区在线| 狠久久av成人天堂| 欧美日产一区二区三区在线观看 | 欧美国产日韩在线| 亚洲精品在线电影| 国产精品入口| 久久中文字幕一区二区三区| 亚洲精品视频免费观看| 欧美一级一区| 91久久夜色精品国产网站| 欧美日韩在线视频首页| 午夜精品理论片| 欧美激情亚洲激情| 午夜伦理片一区| 亚洲国产国产亚洲一二三| 欧美三日本三级少妇三2023 | 在线日韩一区二区| 欧美日韩国产一级片| 欧美一区二区在线播放| 亚洲人成精品久久久久| 欧美在线日韩| 99av国产精品欲麻豆| 国产视频观看一区| 欧美日韩在线高清| 久久综合九色综合久99| 亚洲视频电影在线| 最新亚洲激情| 欧美14一18处毛片| 欧美在线高清| 亚洲网站视频| 91久久在线| 黄网站色欧美视频| 国产美女精品| 国产精品久久9| 欧美电影在线免费观看网站| 久久成人免费网| 亚洲一区二区精品在线| 91久久久久久久久久久久久| 久久久久久久尹人综合网亚洲| 一本不卡影院| 亚洲精品在线免费| 亚洲高清免费视频| 黄色成人在线观看| 国产亚洲人成a一在线v站| 欧美日韩一二区| 欧美欧美天天天天操| 美女主播一区| 久久亚洲色图| 久久久久综合| 久久九九电影| 久久久久久国产精品mv| 性色av香蕉一区二区| 亚洲欧美日韩成人| 午夜久久美女| 亚洲在线视频免费观看| 一片黄亚洲嫩模| 日韩一级在线观看| 日韩视频免费观看| 99re亚洲国产精品| 日韩视频一区二区在线观看 | 女人天堂亚洲aⅴ在线观看| 久久综合五月| 欧美1区2区视频| 亚洲成人在线网站| 亚洲国产成人精品女人久久久 | 精品1区2区3区4区| 韩国视频理论视频久久| 国模 一区 二区 三区| 国产一区视频在线看| 国产主播一区二区三区四区| 国产色产综合色产在线视频| 国产色爱av资源综合区| 狠狠爱综合网| 亚洲激情自拍| 日韩一级大片在线| 亚洲一级片在线观看| 性色av香蕉一区二区| 久久午夜精品一区二区| 欧美顶级艳妇交换群宴| 欧美激情网友自拍| 日韩一级大片在线| 亚洲在线视频网站| 久久久亚洲欧洲日产国码αv | 欧美一区在线直播| 久久亚洲精品一区二区| 欧美激情国产日韩精品一区18| 亚洲精品1区| 亚洲一区二区黄色| 久久伊人亚洲| 欧美三级小说| 一区二区在线观看视频在线观看| 91久久精品国产91久久| 亚洲自拍16p| 两个人的视频www国产精品| 亚洲高清中文字幕| 亚洲综合精品四区| 免费在线观看一区二区| 欧美午夜美女看片| 在线观看欧美| 亚洲欧美国产精品桃花| 美女999久久久精品视频| 99re热精品| 久久亚洲国产成人| 国产精品免费在线| 亚洲精品一区中文| 巨乳诱惑日韩免费av| 一区二区激情| 欧美91大片| 国产一区二区丝袜高跟鞋图片| 亚洲美女视频网| 久久久久久9999| 一本色道久久综合亚洲精品小说| 欧美在线亚洲综合一区| 欧美日韩亚洲高清| 亚洲国产一区在线| 久久精品夜色噜噜亚洲a∨| 亚洲国产一区二区a毛片| 欧美一级视频精品观看| 欧美日韩中文| 亚洲精品美女在线观看播放| 久久久久久久久蜜桃| 亚洲午夜一区二区| 欧美日韩不卡| 亚洲毛片网站| 欧美成人dvd在线视频| 欧美一区2区视频在线观看 | 亚洲免费视频观看| 亚洲精品日韩综合观看成人91| 久久精品在这里| 国产乱人伦精品一区二区| 亚洲小说区图片区| 亚洲精品日韩激情在线电影 | 欧美中文字幕在线播放| 国产精品伦理| 亚洲欧美国产三级| 一区二区三区高清在线| 欧美日韩亚洲不卡| 亚洲天堂久久| av成人免费在线| 欧美日韩国产亚洲一区| 夜夜嗨av一区二区三区四区| 亚洲国产天堂久久国产91| 美国成人直播| 最新国产成人在线观看| 亚洲高清123| 欧美乱在线观看| 一区二区三区四区五区在线| 亚洲欧洲一区二区天堂久久| 欧美精品在欧美一区二区少妇| 亚洲看片一区| 一区二区欧美亚洲| 国产精品久久久久国产精品日日|