游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2968|回复: 3

如何窗口模式下全屏(去掉所有标题)

[复制链接]

36

主题

109

帖子

111

积分

注册会员

Rank: 2

积分
111
发表于 2008-1-3 09:59:00 | 显示全部楼层 |阅读模式
我想在窗口模式下全屏幕显示,也就是去掉标题栏,状态栏什么的,还有边框,我屏幕分辨率是1024*768,我发现当我创建窗口的时候,高度方向总是不能覆盖windows的标准状态栏,其他方向都可以全屏幕
           RECT mainRect;
        // 1024*768
        mainRect.left = 0;
        mainRect.right = GetSystemMetrics(SM_CXSCREEN);
        mainRect.top = 0;
        mainRect.bottom = GetSystemMetrics(SM_CYSCREEN);
        BOOL ret = AdjustWindowRect(&mainRect,WS_POPUP,FALSE);

        // create the main window
        m_MainWindow = CreateWindow(m_PlayerClass.CStr(),m_PlayerTitle.CStr(),
                WS_POPUP,
                0,0,mainRect.right,mainRect.bottom,
                NULL,NULL,m_hInstance,NULL);
用上面的方式总是不能把windows的标准状态栏给覆盖掉,高度方向不能全屏幕 [em7]

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2008-1-3 10:09:00 | 显示全部楼层

Re:如何窗口模式下全屏(去掉所有标题)

加一个topmost属性

36

主题

109

帖子

111

积分

注册会员

Rank: 2

积分
111
 楼主| 发表于 2008-1-18 10:03:00 | 显示全部楼层

Re:如何窗口模式下全屏(去掉所有标题)

还是不行

0

主题

19

帖子

1802

积分

金牌会员

Rank: 6Rank: 6

积分
1802
发表于 2008-1-18 11:41:00 | 显示全部楼层

Re:如何窗口模式下全屏(去掉所有标题)

public:
        BOOL                                        m_bFullScreen;
        WINDOWPLACEMENT                                m_wpPrev;                                        //用于保存正常视图时的窗口位置信息
        DWORD                                        m_dwStyle;
        HMENU                                        m_hMenu;


//全屏幕显示的处理函数
int CHWinMainFrame::ShowWindowMode(BOOL bFullScreen)
{
        RECT                        rectDesktop;
        WINDOWPLACEMENT        wpNew;

        if(!m_hWnd)
        {
                return -1;
        }
        if(bFullScreen)
        {
                //全屏幕显示模式
                //保存正常视图时的窗口位置信息以便恢复原来状态
                m_dwStyle=::GetWindowLong(m_hWnd,GWL_STYLE);
                m_hMenu=GetMenu(m_hWnd);

                //
                ::GetWindowPlacement(m_hWnd,&m_wpPrev);
                m_wpPrev.length = sizeof(m_wpPrev);
                //
                ::ShowWindow(m_hWnd,SW_HIDE);
                ::SetWindowPos(m_hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOREDRAW|SWP_NOSIZE);
                ::SetWindowLong(m_hWnd,GWL_STYLE,WS_POPUP|WS_SYSMENU);
                ::SetMenu(m_hWnd,NULL);
                //调整RECT为新的窗口尺寸
                ::GetWindowRect(::GetDesktopWindow(),&rectDesktop);
                ::AdjustWindowRectEx(&rectDesktop,::GetWindowLong(m_hWnd,GWL_STYLE),FALSE,::GetWindowLong(m_hWnd,GWL_EXSTYLE));
                //保存RECT
                wpNew = m_wpPrev;
                wpNew.showCmd = SW_SHOWNORMAL;
                wpNew.rcNormalPosition = rectDesktop;
        }
        else
        {
                //正常显示模式
                wpNew=m_wpPrev;
                ::SetWindowLong(m_hWnd,GWL_STYLE,m_dwStyle);
                ::SetMenu(m_hWnd,m_hMenu);
    }
        //设置窗口显示状态
        ::SetWindowPlacement(m_hWnd,&wpNew);
        if(!::IsWindowVisible(m_hWnd))
        {
                ::ShowWindow(m_hWnd,SW_SHOW);
        }

        return 0;
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-19 21:54

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表