下面的方法我确认可以实现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旋转的。
阅读(1999) | 评论(0) | 转发(0) |