Chinaunix首页 | 论坛 | 博客
  • 博客访问: 134596
  • 博文数量: 27
  • 博客积分: 1546
  • 博客等级: 上尉
  • 技术积分: 255
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-25 22:46
文章分类
文章存档

2013年(2)

2012年(2)

2011年(7)

2010年(11)

2009年(4)

2008年(1)

我的朋友

分类: WINDOWS

2009-04-23 07:55:15

下面的方法我确认可以实现WINCE屏幕旋转,注意,此方法是在驱动层实现的,如果你只考虑在应用层去实现,那下面的内容对你毫无意义。此方法有说会导致鼠标与触摸屏不正常工作,我试下来确认没有这种情况,运行正常。网上还有种方法是应用程序用API函数控制屏幕旋转,注意,这种方法前提是驱动程序支持屏幕旋转。我手上的BSP默认是不支持的,你需要按下面的方法开启它。
 
转载:
winCE 4.2以上
一.修改
SMDK2440\DRIVERS\DISPLAY\S3C2440LCD 目录下的sources文件合适位置增加:

CLEARTYPE=0
ROTATE=1  //这句是我加的。这里是为了链接相应的库文件。

三.s3c2440disp.h文件头上加一句
#define ROTATE 1
 
四.s3c2440disp.cpp中
S3C2440DISP::S3C2440DISP (void)
{
#ifdef ROTATE
m_iRotate = DMDO_90; // 90不对是DMDO_90=1!!!!;  //0->90 我修改0-》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控制器的,与这里没有关系。
修改LCD控制器是另外一个方式实现LCD旋转的。
阅读(1969) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~