• WINCE实现屏幕旋转的方法


    1、S3C6410开发板上实现屏幕旋转(实现)

      i)修改 E:\WINCE600\PLATFORM\SMDK6410\SRC\DRIVERS\DISPLAY\DISPLAY_DRV\display_main.cpp中让

       line172:   m_iRotate = GetRotateModeFromReg();//从注册表读取Angle值

      ii)修改注册表 platform.reg

       line56:     [HKEY_LOCAL_MACHINE\System\GDI\Rotation]
                 "Angle"=dword:0 ;5A,B4,10E

      iii)保存重新编译即可

     

    2、驱动层上实现:winCE 4.2以上(未测)

    一.修改

    SMDK2440\DRIVERS\DISPLAY\S3C2440LCD 目录下的sources文件合适位置增加:

    CLEARTYPE=0
    ROTATE=1   //这句是我加的

    二.s3c2440disp.h文件头上加一句

    #define ROTATE

    三.s3c2440disp.cpp中
    S3C2440DISP::S3C2440DISP (void)
    {

    #ifdef ROTATE

    //m_iRotate = GetRotateModeFromReg(); 原来的是通过GetRotateModeFromReg读取

    //[HKEY_LOCAL_MACHINE\System\GDI\Rotation]  下的"Angle"值决定m_iRotate
    m_iRotate = DMDO_90;

    SetRotateParms();
    #endif //ROTATE  

    四.检查platform.reg中,

    [HKEY_LOCAL_MACHINE\System\GDI\Drivers]
    "Display"="s3c2440disp.dll"

    以下注册表可以有可以没有。
    [HKEY_LOCAL_MACHINE\System\GDI\Rotation]  
    "ANGLE"=dword:5A   ;0x5A for 90,这是我加的   ,加在gdi\drivers这项后面

    五,要在S3C2440DISP::S3C2440DISP (void) 最后加一句
    ((GPESurfRotate *)m_pPrimarySurface)->SetRotation(m_nScreenWidth, m_nScreenHeight, m_iRotate);

    而s2440.h、2410中关于屏幕的东西不要去改,那是初试化lcd控制器的,与这里没有关系。

    2、通过修改注册表做Rotation

    默认情况下,屏幕都是正常显示的,也就是说翻转角度为0度。可以通过修改注册表来做屏幕翻转,通过修改”Angle”的值来完成,具体设置如下:

    [HKEY_LOCAL_MACHINE\System\GDI\Rotation]

    "Angle"=dword:5A ;翻转90度,罗嗦一句,5A就是90的十六进制

    可以设置为0度,90度,180度和270度。也就是0,5A,B4和10E,通过设置这些值可以达到屏幕翻转的目的。你可以在Build image的时候就做这件事情,只要在project.reg文件里面加入上面的设置,然后重新make image,这样新的image启动以后就会按照你的设定来显示。也可以在WinCE启动以后,编个读写注册表的小程序,来修改这个值,然后重新启动就可以了(系统要支持HIVE-Based Registry)。

    原文引自:http://jimmyloveforever.blog.163.com/blog/static/11977524720096183118993/

  • 相关阅读:
    Drawable、Bitmap、byte[]之间的转换
    关于java.lang.IllegalArgumentException: View not attached to window manager 错误的分析
    Android ListView使用BaseAdapter与ListView的优化
    Ubuntu, using svn from terminal
    Ubuntu 12.04(64位)上搭建android 开发环境 (ADT 、android-studio)
    Widget改变大小
    android4.0中实现AppWidget集合
    android 中 AppWidget 的 ListView 的实现
    解决IllegalStateException: Can not perform this action after onSaveInstanceState
    Drawable和Bitmap转换
  • 原文地址:https://www.cnblogs.com/xfdarm/p/1625651.html
Copyright © 2020-2023  润新知