3665|6

80

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

CE下对话框的全屏探讨??? [复制链接]

                // 隐藏输入面板
                SIPINFO si;
                memset(&si, 0, sizeof(SIPINFO));
                si.cbSize = sizeof(SIPINFO);
                SHSipInfo(SPI_GETSIPINFO, 0, &si, 0);
                if (si.fdwFlags & SIPF_ON)
                {
                        si.cbSize = sizeof(SIPINFO);
                        si.fdwFlags = SIPF_OFF;
                        SHSipInfo(SPI_SETSIPINFO, 0, &si, 0);
                }
                // 隐藏任务栏
                DWORD dwState = (SHFS_HIDETASKBAR | SHFS_HIDESTARTICON | SHFS_HIDESIPBUTTON);
                SHFullScreen(m_hWnd, dwState);
                HWND hWndTaskBar = ::FindWindow(TEXT("HHTaskBar"), NULL);
                if (hWndTaskBar != NULL)
                {
                        RECT rtTaskBar;
                        ::GetWindowRect(hWndTaskBar, &rtTaskBar);

                        ::ShowWindow(hWndTaskBar, SW_HIDE);
                }
                // 隐藏主菜单
                HWND hMenuBar = SHFindMenuBar(m_hWnd);
                if (hMenuBar != NULL)
                {
                        RECT rtMenuBar;
                        ::GetWindowRect(hMenuBar, &rtMenuBar);
                        ::MoveWindow(hMenuBar, 0, 0, 1, 1, TRUE);
                        ::ShowWindow(hMenuBar, SW_HIDE);
                }
                // 全屏窗口
                CRect rc;
                SetRect( &rc,
                        0,
                        0,
                        GetSystemMetrics( SM_CXSCREEN ),
                        GetSystemMetrics( SM_CYSCREEN ));
                MoveWindow( &rc, TRUE );
代码如上;;;
上面的菜单栏给隐藏了,但下面的任务栏怎么都隐藏不掉。。。估计是输入法那个按钮还在上面的原因;
问下怎么实现真正的全屏啊。。。

最新回复

楼上的代码我试过,不过没实现过。。 不过问题已解决; 发现了全屏有好几种方式: 1、隐藏任务栏,命令栏,输入法面板然后全屏; 2、另一种设置对话框为非全屏对话框,CE的CDialg有个这个属性的。。。  详情 回复 发表于 2008-12-31 08:59
点赞 关注

回复
举报

84

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
隐藏Wce桌面上的任务栏
void CTabControlvc9Dlg::ControlBgnBar(BOOL bShowFlag)
{
        HWND hBgnBar;       
        hBgnBar = ::FindWindow(_T("HHTaskBar"), NULL);
        if(hBgnBar == NULL) return;
        //SendMessage( hBgnBar, WM_WININICHANGE, 0, 5000 );
        if(bShowFlag) ::ShowWindow(hBgnBar,SW_HIDE);
        else ::ShowWindow(hBgnBar,SW_SHOW);       
}
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
谢谢楼上回复,现在
CE下对话框的布局
---------------------------------------
|         任务栏(0, 0, 240, 26)              |
---------------------------------------






           客户区域











---------------------------------------
|          菜单栏(0, 294, 240, 26)       |
---------------------------------------

是不是这样的啊??
我现在的问题任务栏可以隐藏了。。
但是菜单栏隐藏不了,
发现菜单栏始终有个选择输入法的输入面板。。。
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

4
 
下面的是任务栏,上面的是菜单栏 你可以从注册表里改
void hide_imm()
{

        TCHAR        szKeyName[256];
        DWORD val;
        HKEY    hfkey;
        LPDWORD Disposition = 0;




                val = 0;       

        wsprintf(szKeyName, _T("Software\\Microsoft\\Windows\\CurrentVersion\\CHSIME03\\"));
        if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_CURRENT_USER,szKeyName, 0, 0, &hfkey))
        {
               
                RegSetValueEx(hfkey, TEXT("ShowState"), 0,REG_DWORD, (PBYTE)&val ,4);
               
                RegCloseKey( hfkey);
        }
       
}
方法类似与上面代码
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

5
 
修改注册表可以实现
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

6
 
=================================================
Windows Mobile

    DWORD dwState;
    RECT rc;

    if (wParam == WA_CLICKACTIVE || wParam == WA_ACTIVE) {
        // To switch to full screen mode, first hide all of the shell parts.
        dwState = (SHFS_HIDETASKBAR
            | SHFS_HIDESTARTICON
            | SHFS_HIDESIPBUTTON);

        SHFullScreen(hWnd, dwState);

        // Next resize the main window to the size of the screen.
        SetRect(&rc, 0, 0, GetSystemMetrics(SM_CXSCREEN),
            GetSystemMetrics(SM_CYSCREEN));
        MoveWindow(hWnd, rc.left, rc.top, rc.right-rc.left,
            rc.bottom-rc.top, TRUE);

        ShowWindow(hWnd, SW_SHOWNORMAL);
    }

    // The window is being deactivated... restore it to non-fullscreen
    else {
        // To switch to normal mode, first show all of the shell parts.
        dwState = (SHFS_SHOWTASKBAR
            | SHFS_SHOWSTARTICON
            | SHFS_SHOWSIPBUTTON);

        SHFullScreen(hWnd, dwState);

        // Next resize the main window to the size of the work area.
        SystemParametersInfo(SPI_GETWORKAREA, 0, &rc, FALSE);

        MoveWindow(hWnd, rc.left, rc.top, rc.right-rc.left,
            rc.bottom-rc.top, TRUE);
    }


=======================================================
WinCE下就更简单了。

上面的方法都可以,

MoveWindow(...)
SetWindowPos(...)

都可以实现。

 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

7
 
楼上的代码我试过,不过没实现过。。
不过问题已解决;
发现了全屏有好几种方式:
1、隐藏任务栏,命令栏,输入法面板然后全屏;
2、另一种设置对话框为非全屏对话框,CE的CDialg有个这个属性的。。。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表