Chinaunix首页 | 论坛 | 博客
  • 博客访问: 410854
  • 博文数量: 155
  • 博客积分: 2590
  • 博客等级: 少校
  • 技术积分: 2161
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-25 09:33
文章分类

全部博文(155)

文章存档

2015年(1)

2014年(2)

2013年(55)

2012年(97)

分类: 系统运维

2012-12-04 14:14:52

也许你现在正在为做出来的NK或应用程序与想要的显示效果不同而烦恼,怎样才能让应用程序或系统的显示与我们的要求所一致呢?

现在jobsss来教你!

WINCE 的屏幕翻转无非就是两种1.应用程序2.NK话不多说,现在直接进入正题:

1.要修改应用程序的比较简单,在对话框中的OnInitDialog()函数中加入语句:

  1. DEVMODE devmode = {0};  
  2. devmode.dmSize = sizeof(DEVMODE);  
  3. devmode.dmDisplayOrientation = DMDO_270; //270°模式  
  4. devmode.dmFields = DM_DISPLAYORIENTATION;  
  5. ChangeDisplaySetting***(NULL, &devmode, NULL, 0, NULL);  
  1. 在devmode.dmDisplayOrientation=,后加入想修改的度数即可。  
2.NK:设置屏幕旋转步骤: 
1) 修改注册表: 
在S3C6410_DEMO工程下找到文件夹SMDK6410,按照路径Parameter-》Files->platform.reg->HKEY_LOCAL_MACHING->System->GDI->Rotation,

双击Rotation,将Angle的Data参数改为你所要设置的旋转度数,如:90°(5a),180°(b4),270°(10e),360°(168),其中括号里面的是十六进制数值。

 2)修改驱动程序: 
按照路劲 
WINCE600\PLATFORM\SMK6410\SRC\DRIVERS\DISPLY\s3c6410_disp_drv\s3c6410_disp.cpp,双击s3c6410_disp.cpp,进入S3C6410_DEMO工程,

在程序中找到 

  1. #ifdef TEMP_FIX_ROTATION_BUG   
  2.         m_iRotate =0;   
  3.         g_bTempFirstRotation = TRUE;   
  4. #else   
  5.         m_iRotate = GetRotateModeFromReg();   
  6. #endif   
  7.         SetRotateParams();   
从程序中可以看出,该显示驱动默认的旋转度数是0°,也就是不对注册表进行操作的,那么就要修改程序,使得旋转的度数是从注册表中获得的参数,

修改如下: 

  1. #ifdef TEMP_FIX_ROTATION_BUG   
  2.         m_iRotate = GetRotateModeFromReg();   
  3.         g_bTempFirstRotation = TRUE;   
  4. #else   
  5.         //m_iRotate = GetRotateModeFromReg(); //注意:此处注释掉  
  6. #endif   
  7.         SetRotateParams();   
3) 系统生成: 
进入S3C6410_DEMO工程,找到Build->Advanced Build Commands->clean sysgen,点击clean sysgen,等待一段时间,编译成功。 
4) 烧写系统 ,待第三步成功后,在 \WINCE600\OSDesigns\S3C6410_DEMO\S3C6410_DEMO\RelDir\Samsung_SMDK6410_Release 
路径下找到生成的镜像文件: 
NK.bin,EBOOT.bin,Eboot.nb0,STEPLDR.bin,STEPLDR.nb0 该镜像文件是烧写WinCE系统所必须的镜像文件,即可。

行业门户()文章,希望大家可以留言建议

阅读(585) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~