主题 : TINY6410 开发板,屏幕旋转后如何保存设置,以便下次开机有效。 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 47238
精华: 1
发帖: 43
金钱: 265 两
威望: 53 点
贡献值: 1 点
综合积分: 106 分
注册时间: 2011-05-20
最后登录: 2011-08-15
楼主  发表于: 2011-06-23 11:41

 TINY6410 开发板,屏幕旋转后如何保存设置,以便下次开机有效。

管理提醒: 本帖被 xoom 执行加亮操作(2011-06-28)
下面是一段屏幕旋转结果的注册表保存代码,保存成功了,但是下次开机屏幕还是默认不旋转的,怎样才能使下次开机能保存关机前设置的结果啊?请高手指点!
//注册表保存:未成功!
void RegSaveRotate(DWORD value)
{
    DWORD rvalue=0;

    // set tmp value
    switch(value)
    {
        // CE store the short type data low-high upside down
    case DMDO_0:
        rvalue=0;
        break;
    case DMDO_90:
        rvalue=0x5A;  // 5A
        break;
    case DMDO_180:
        rvalue=0xB4;  // B4
        break;
    case DMDO_270:
        rvalue=0x010E; // 010E
        break;
    default:
        rvalue=0;
        break;
    }

    // set value
    HKEY hKEY;
    LPCTSTR data_Set=_T("System\\GDI\\ROTATION");
    long ret0=::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set, 0, KEY_ALL_ACCESS, &hKEY);

    if(ret0!=ERROR_SUCCESS)
    {
        DWORD   dwDisposition;  
        ::RegCreateKeyEx(HKEY_LOCAL_MACHINE,_T("System\\GDI\\ROTATION"),
            0,   NULL,   REG_OPTION_NON_VOLATILE,   KEY_ALL_ACCESS
            , NULL,   &hKEY,   &dwDisposition) ;
    }
    BYTE lm=0;
    long ret1=::RegSetValueEx(hKEY,_T("Angle"),0,REG_DWORD_LITTLE_ENDIAN,(LPBYTE)&rvalue,sizeof(rvalue));
    ret1=::RegSetValueEx(hKEY,_T("LandscapeMode"),0,REG_BINARY,(LPBYTE)&lm,sizeof(lm));
    long ret2=::RegCloseKey(hKEY);
}