如何定制Windows Embedded Compact 7 shell详解(下)

本文档详细介绍了如何在Windows Embedded Compact 7中实现屏幕旋转功能,包括旋转支持的驱动和应用设置。此外,还阐述了自定义用户界面,特别是Shell的定制,包括创建皮肤、定制UI元素、系统颜色以及启动用户界面组件。以IEShell为例,演示了如何创建以浏览器页面为Shell的操作系统设计,并将其设置为目标设备的Shell。
摘要由CSDN通过智能技术生成

1.7  处理用户界面的旋转

Windows Embedded Compact 7支持以90°为增量旋转其用户界面,使Windows Embedded Compact 7设备横放使用或者坚放使用。例如,对于一般的Web PadInternet Appliance设备,屏幕多为横向显示,而对于掌上电脑等手持式移动设备,屏幕多为纵向显示。

目前基于Windows Embedded Compact 7设备的屏幕旋转仅支持单屏幕的旋转显示,不支持多屏幕的旋转显示,而与屏幕旋转对应的应用程序主要有两个:Shell应用程序,任务条应用程序。当出现屏幕旋转时,鼠杯和光标会自动调整以适应新的屏幕显示方向。

只有当基于Windows Embedded Compact 7设备的显示驱动支持屏幕旋转时才能真正实现屏幕的旋转显示,如果开发者使用白己的显示驱动而非Platform Builder提供的显示驱动,那么开发者必须保证自己的显示驱动支持屏幕旋转。

Windows Embedded Compact 7中微软提供的RFlatGeode MediaGx例显示驱动支持屏幕的旋转,RFlat驱动位于﹪_WINCEROOT%\ Public\Common\0AK\Drivers\Display\RFlat文件夹中,Oeode MediaGx驱动位于%_WINCEROOT%\Public\Common\OAK\CSP\X86\Geode\GXvideo文件夹中。支持旋转的显示驱动应该继承相应的旋转类,并实现一些给定的方法;

同时,支持旋转显示的驱动应该与GPERotate.iibEmulRotate.lib进行链接。RFlar驱动的

RGPEFIat类继承于GDIGPERotate类,同时,RFlat驱动的GetRutate ModeFromnReg函数从注册表[HKEY_LOCAL_MACHINE\SYSTEM\GDI\ROTATION]返回Angle键的dword键值并以此来决定当前的屏幕旋转角度。

在显示驱动程序支持屏幕旋转的情况下,还需要创建一个使屏幕产生旋转的应用程序并设置相应的注册表。

1.7.1  创建一个操作系统设计

创建一个支持屏幕旋转的操作系统设计,在New platform向导中进行如下选择:

·命名操作系统设计为Screen Rotation:

·从可用的BSP列表中选择Virtual PC: X86

·从可用的设计模板列表中选择Handheld

1.7.2  修改注册表设置

在默认情况下,当操作系统映像下载到目标平台之后,屏幕的旋转角度为0°,即不产生旋转,开发者可以通过修改相应的注册表来更改这个默认设置。随后,在目标平台上运行的任何应用程序可以旋转屏幕,覆盖这个注册表设置。表9-3展示了可以在注册表中设置的Angle子键的值。

3-3                     屏幕旋转角度Angle注册表子键

Angle的值

描  述

Ox0

不旋转

Ox5A

顺时针旋转90°

OxB4

顺时针旋转180°

Ox10E

顺时针旋转270°

下面的过程设置屏幕旋转注册表键:

(l)Solution窗口,选择ParameterFile选项卡如图1.1

1.1选择ParameterFile选项卡

(2)展开目录树,选择Project Specific Files结点;

(3)双击OSdesign.reg在编辑窗口中打开它;

(4)为了设置当前操作系统设计屏幕旋转的默认角度,将下列文本添加到Project.reg文件的末尾,下面的例代码将默认的屏幕角度设置为Ox5A,即90。:

   : Settings to rotate the scrcen by 90 degrees clockwise upon download

    [HKEY_LOCAL_MACHINE\System\GDI\Rotation]

       “Angle”=dword:5A

(5)保存并关闭Project.reg文件,如图1.2

    图1.2保存并关闭Project.reg文件

1.7.3 创建屏幕旋转应用程序

这里我们将在当前的操作系统设计中创建一个使用户能操作屏幕旋转的应用程序,使用户能根据需要以90°为增量顺时针旋转屏幕。

下面过程创建一个屏幕旋转应用程序工程:

(1)打开ScreenRotation操作系统设计。

(2)从“File”菜单上选择“New Project or File”,在“Projects”选项卡上选择“MFC Smart DeviceApplication

(3)在“Project name”框中输入屏幕旋转应用程序工程名“Rotate”,默认情况下,Platform Builder将这个工程存储在当前操作系统设计的文件夹下.

(4)选择“Workspace Project”单选按钮,单击“OK”按钮,系统显示“New ProjectWizard”对话框。

(5)选择yincheng_OS SDK. 

(6)在当前工程的创建结束后,在“FileView”选项卡的Projects目录树下会显示新创建的Rotate工程。

(7)“Workspace”窗口中选择“ClassView”选项卡,找到WndProc回调函数,双击WndProc在编辑窗口中打开它。

(8)WndProc函数的Switch语句中添加以下代码:

    case WM_CREATE:

    HWND hwndRotateButton;

    hwndRotateButton= CreateWindow(TEXT(”button”).TEXT(”Rotate Me”),

    WS_CHILDIWS_VISIBLE  IBS_PUSHBUTTON, 50. 50.100.75. hWnd.

    (HMENU)J,((LPCREATESTRUCT)iParam)->hlnstance,NULL);

    break;

这段代码通过在WM_CREATE消息中添加一个“Rotate Me”按钮来为用户提供一个界面,允许用户通过单击这个按钮来旋转屏幕。WM_CREATE消息是在应用程序主窗口创建时自动被调用的。

(9)为了处理

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胡耀文

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值