6717|10

97

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

如何让屏幕旋转90度 [复制链接]

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

最新回复

给你一个例子参考 /********************************************************************** 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   详情 回复 发表于 2007-3-1 16:17
点赞 关注

回复
举报

82

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
在文件platform.reg中,做如下修改:
原始代码:
[HKEY_LOCAL_MACHINE\SYSTEM\GDI\ROTATION]
        "ANGLE"=dword:0
更改为:
[HKEY_LOCAL_MACHINE\SYSTEM\GDI\ROTATION]
        "ANGLE"=dword:5A  ;90=0x5A
 
 

回复

71

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
首先要使能Rotation功能,这对不同的平台来说,需要设置相应的变量。
一般在BSP包的根目录下的.bat文件中。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

4
 
在文件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,您能否给我详细的指点下
十分感谢
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

5
 
那你看我的Blog商有一个 这个 比较简单, 我也是似过了才知道的, 有好多种方式  但实现起来一种就够了。

好运
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

6
 
直接把屏幕安装90度就可以了
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

7
 
....今天下午搞了下午
恢复不了了。..
555555555
谁能将的稍微详细点啊...
谢谢
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

8
 
高手帮帮忙啊..
可以适当给点报酬也行
因为这个很急很急忙拜托大家..
我也是第一次学习
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

9
 
将脑袋旋转90度就可以了
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(中级)

10
 
第一个问题,想问下,PB4.2到底是用来做什么的?它的应用步骤是什么啊?

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

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

不知道你是什么机器,如果你用 vs2005,很简单
           OpenNETCF.WindowsCE.Forms.SystemSettings.ScreenOrientation =
                OpenNETCF.WindowsCE.Forms.ScreenOrientation.Angle90;
VS自己也有,如果你是EVC,那你参考 OpenNETCF 代码,或者,去写注册表。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

11
 
给你一个例子参考
/**********************************************************************
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;
}
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表