如何让屏幕旋转90度

010203www   2007-2-13 10:10 楼主
我是个初学者,看了一本关于WINCE的书,但还有很多疑问
第一个问题,想问下,PB4.2到底是用来做什么的?它的应用步骤是什么啊?
第二个问题想请问大家,如何让2410上的WINCE旋转90度?
网上都说的很笼统,而且都是一样的,我操作上比较困难

回复评论 (10)

在文件platform.reg中,做如下修改:
原始代码:
[HKEY_LOCAL_MACHINE\SYSTEM\GDI\ROTATION]
        "ANGLE"=dword:0
更改为:
[HKEY_LOCAL_MACHINE\SYSTEM\GDI\ROTATION]
        "ANGLE"=dword:5A  ;90=0x5A
点赞  2007-2-13 11:45
首先要使能Rotation功能,这对不同的平台来说,需要设置相应的变量。
一般在BSP包的根目录下的.bat文件中。
点赞  2007-2-13 11:47
在文件platform.reg中,做如下修改:
原始代码:
[HKEY_LOCAL_MACHINE\SYSTEM\GDI\ROTATION]
        "ANGLE"=dword:0
更改为:
[HKEY_LOCAL_MACHINE\SYSTEM\GDI\ROTATION]
        "ANGLE"=dword:5A  ;90=0x5A
我在platform.reg下没看到原始代码
但我加了下面那句能行么?
而且我还到书上的需要更改下别的东西
不知道行不行
我的qq是50604599,您能否给我详细的指点下
十分感谢
点赞  2007-2-15 14:32
那你看我的Blog商有一个 这个 比较简单, 我也是似过了才知道的, 有好多种方式  但实现起来一种就够了。

好运
点赞  2007-2-18 18:58
直接把屏幕安装90度就可以了
点赞  2007-2-20 12:18
....今天下午搞了下午
恢复不了了。..
555555555
谁能将的稍微详细点啊...
谢谢
点赞  2007-2-26 18:25
高手帮帮忙啊..
可以适当给点报酬也行
因为这个很急很急忙拜托大家..
我也是第一次学习
点赞  2007-2-27 14:01
将脑袋旋转90度就可以了
点赞  2007-2-27 14:21
第一个问题,想问下,PB4.2到底是用来做什么的?它的应用步骤是什么啊?

PB4.2是用来裁剪操作系统的,可以把系统裁剪成你需要的系统,你可以在里面添删一些网卡驱动
,如果你什么不需要 譬如,显示,串口,不要,你可以把他删除,等。。。。。

第二个问题想请问大家,如何让2410上的WINCE旋转90度?

不知道你是什么机器,如果你用 vs2005,很简单
           OpenNETCF.WindowsCE.Forms.SystemSettings.ScreenOrientation =
                OpenNETCF.WindowsCE.Forms.ScreenOrientation.Angle90;
VS自己也有,如果你是EVC,那你参考 OpenNETCF 代码,或者,去写注册表。
点赞  2007-3-1 13:50
给你一个例子参考
/**********************************************************************
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.

Copyright (c) 1999 Microsoft Corporation. All Rights Reserved.

MODULE:
  rotation.cpp

ABSTRACT:
  This application code demonstrates the how you can set up the DEVMODE structure and use the ChangeDisplaySettingsEx function to rotate the screen.
  Each time you run the executable for this code, the screen will rotate clockwise by 90 degrees.

**********************************************************************/

#include

int
WINAPI
WinMain(
   HINSTANCE,
   HINSTANCE,
#ifdef UNDER_CE
   LPWSTR,
#else
   LPSTR,
#endif
   int
   )
{
   DEVMODE DevMode;

   int RotationAngles;
   int CurrentAngle;
   int NewAngle;

   //
   // Check for rotation support by getting the rotation angles supported.
   //

   memset (&DevMode, 0, sizeof (DevMode));
   DevMode.dmSize   = sizeof (DevMode);
   DevMode.dmFields = DM_DISPLAYQUERYORIENTATION;

   if (DISP_CHANGE_SUCCESSFUL == ChangeDisplaySettingsEx(NULL, &DevMode, NULL, CDS_TEST, NULL))
   {
      RotationAngles = DevMode.dmDisplayOrientation;
      RETAILMSG(1, (L"ChangeDisplaySettingsEx supports these rotation angles %d", RotationAngles));
   }
   else
   {
      RETAILMSG(1, (L"ChangeDisplaySettingsEx failed to get the supported rotation angles."));
      RotationAngles = -1;
   }

   //
   // Get the current rotation angle.
   //

   memset(&DevMode, 0, sizeof (DevMode));
   DevMode.dmSize   = sizeof (DevMode);
   DevMode.dmFields = DM_DISPLAYORIENTATION;

   if (DISP_CHANGE_SUCCESSFUL == ChangeDisplaySettingsEx(NULL, &DevMode, NULL, CDS_TEST, NULL))
   {
      CurrentAngle = DevMode.dmDisplayOrientation;
      RETAILMSG(1, (L"ChangeDisplaySettingsEx reports the current rotation as %d", CurrentAngle));
   }
   else
   {
      RETAILMSG(1, (L"ChangeDisplaySettingsEx failed to get the current rotation angle."));
      CurrentAngle = -1;
   }

   //
   // Rotate to the "next" angle.
   //

   if (CurrentAngle >= 0 && RotationAngles >= 0)
   {
      NewAngle = CurrentAngle;

      do
      {
         NewAngle <<= 1;

         if (NewAngle == DMDO_0)
         {
            NewAngle = DMDO_90;
         }

         if (NewAngle > DMDO_270)
         {
            NewAngle = DMDO_0;
         }
      } while (!(NewAngle & RotationAngles) && (NewAngle != DMDO_0));

      memset(&DevMode, 0, sizeof (DevMode));
      DevMode.dmSize               = sizeof (DevMode);
      DevMode.dmFields             = DM_DISPLAYORIENTATION;
      DevMode.dmDisplayOrientation = NewAngle;

      if (DISP_CHANGE_SUCCESSFUL == ChangeDisplaySettingsEx(NULL, &DevMode, NULL, CDS_RESET, NULL))
      {
         RETAILMSG(1, (L"ChangeDisplaySettingsEx changed rotation angle to %d", NewAngle));
      }
      else
      {
         RETAILMSG(1, (L"ChangeDisplaySettingsEx failed to change the rotation angle to %d", NewAngle));
      }
   }

   return 0;
}
点赞  2007-3-1 16:17
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复