zoukankan      html  css  js  c++  java
  • VC++全屏

    Win32类型的全屏代码:

    1. 去掉menu

    ATOM MyRegisterClass(HINSTANCE hInstance)
    {
        WNDCLASSEX wcex;
    
        wcex.cbSize = sizeof(WNDCLASSEX);
    
        wcex.style            = CS_HREDRAW | CS_VREDRAW;
        wcex.lpfnWndProc    = WndProc;
        wcex.cbClsExtra        = 0;
        wcex.cbWndExtra        = 0;
        wcex.hInstance        = hInstance;
        wcex.hIcon            = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_W32));
        wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
        wcex.hbrBackground    = (HBRUSH)(COLOR_WINDOW+1);
        wcex.lpszMenuName    = NULL;//MAKEINTRESOURCE(IDC_W32); 这个是修改过的
        wcex.lpszClassName    = szWindowClass;
        wcex.hIconSm        = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
    
        return RegisterClassEx(&wcex);
    }

    2. 改变window bar以及宽高属性

    BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
    {
       HWND hWnd;
    
       hInst = hInstance; // 将实例句柄存储在全局变量中
    
       hWnd = CreateWindow(szWindowClass, szTitle, WS_POPUP/*WS_OVERLAPPEDWINDOW*/,
          CW_USEDEFAULT, 0, ::GetSystemMetrics(SM_CXSCREEN)/*CW_USEDEFAULT*/, ::GetSystemMetrics(SM_CYSCREEN)/*0*/, NULL, NULL, hInstance, NULL);
    
       if (!hWnd)
       {
          return FALSE;
       }
    
       ShowWindow(hWnd, nCmdShow);
       UpdateWindow(hWnd);
    
       return TRUE;
    }

    运行,搞定(alt+f4退出)。

    MFC SDI类型的全屏代码:

    1. 在MainFrame中更改窗口样式,去掉window bar的显示

    BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
    {
        if( !CFrameWndEx::PreCreateWindow(cs) )
            return FALSE;
        // TODO: 在此处通过修改
        //  CREATESTRUCT cs 来修改窗口类或样式
        cs.style=WS_POPUPWINDOW;  //增加这句
    cs.hMenu=NULL; //去掉菜单
    return TRUE; }

    2. 在App.cpp代码中修改窗口显示为最大化

    m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED/*SW_SHOW*/);

    3. 在CMainFrame::OnCreate中注释掉所有与menu, toolbar, statusbar相关的代码,如下:

    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
        if (CFrameWndEx::OnCreate(lpCreateStruct) == -1)
            return -1;
    
        BOOL bNameValid;
        // 基于持久值设置视觉管理器和样式
        OnApplicationLook(theApp.m_nAppLook);
    
        //if (!m_wndMenuBar.Create(this))
        //{
        //    TRACE0("未能创建菜单栏
    ");
        //    return -1;      // 未能创建
        //}
    
        //m_wndMenuBar.SetPaneStyle(m_wndMenuBar.GetPaneStyle() | CBRS_SIZE_DYNAMIC | CBRS_TOOLTIPS | CBRS_FLYBY);
    
        //// 防止菜单栏在激活时获得焦点
        //CMFCPopupMenu::SetForceMenuFocus(FALSE);
    
        //if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
        //    !m_wndToolBar.LoadToolBar(theApp.m_bHiColorIcons ? IDR_MAINFRAME_256 : IDR_MAINFRAME))
        //{
        //    TRACE0("未能创建工具栏
    ");
        //    return -1;      // 未能创建
        //}
    
        /*CString strToolBarName;
        bNameValid = strToolBarName.LoadString(IDS_TOOLBAR_STANDARD);
        ASSERT(bNameValid);
        m_wndToolBar.SetWindowText(strToolBarName);
    
        CString strCustomize;
        bNameValid = strCustomize.LoadString(IDS_TOOLBAR_CUSTOMIZE);
        ASSERT(bNameValid);
        m_wndToolBar.EnableCustomizeButton(TRUE, ID_VIEW_CUSTOMIZE, strCustomize);*/
    
        // 允许用户定义的工具栏操作:
        //InitUserToolbars(NULL, uiFirstUserToolBarId, uiLastUserToolBarId);
    
        //if (!m_wndStatusBar.Create(this))
        //{
        //    TRACE0("未能创建状态栏
    ");
        //    return -1;      // 未能创建
        //}
        //m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));
    
        // TODO: 如果您不希望工具栏和菜单栏可停靠,请删除这五行
        
        /*m_wndMenuBar.EnableDocking(CBRS_ALIGN_ANY);
        m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
        EnableDocking(CBRS_ALIGN_ANY);
        DockPane(&m_wndMenuBar);
        DockPane(&m_wndToolBar);*/
    
    
        // 启用 Visual Studio 2005 样式停靠窗口行为
        //CDockingManager::SetDockingMode(DT_SMART);
        // 启用 Visual Studio 2005 样式停靠窗口自动隐藏行为
        //EnableAutoHidePanes(CBRS_ALIGN_ANY);
    
        // 启用工具栏和停靠窗口菜单替换
        //EnablePaneMenu(TRUE, ID_VIEW_CUSTOMIZE, strCustomize, ID_VIEW_TOOLBAR);
    
        // 启用快速(按住 Alt 拖动)工具栏自定义
        //CMFCToolBar::EnableQuickCustomization();
    
        if (CMFCToolBar::GetUserImages() == NULL)
        {
            // 加载用户定义的工具栏图像
            if (m_UserImages.Load(_T(".\UserImages.bmp")))
            {
                CMFCToolBar::SetUserImages(&m_UserImages);
            }
        }
    
        // 启用菜单个性化(最近使用的命令)
        // TODO: 定义您自己的基本命令,确保每个下拉菜单至少有一个基本命令。
        CList<UINT, UINT> lstBasicCommands;
    
        lstBasicCommands.AddTail(ID_FILE_NEW);
        lstBasicCommands.AddTail(ID_FILE_OPEN);
        lstBasicCommands.AddTail(ID_FILE_SAVE);
        lstBasicCommands.AddTail(ID_FILE_PRINT);
        lstBasicCommands.AddTail(ID_APP_EXIT);
        lstBasicCommands.AddTail(ID_EDIT_CUT);
        lstBasicCommands.AddTail(ID_EDIT_PASTE);
        lstBasicCommands.AddTail(ID_EDIT_UNDO);
        lstBasicCommands.AddTail(ID_APP_ABOUT);
        lstBasicCommands.AddTail(ID_VIEW_STATUS_BAR);
        lstBasicCommands.AddTail(ID_VIEW_TOOLBAR);
        lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2003);
        lstBasicCommands.AddTail(ID_VIEW_APPLOOK_VS_2005);
        lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_BLUE);
        lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_SILVER);
        lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_BLACK);
        lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_AQUA);
        lstBasicCommands.AddTail(ID_VIEW_APPLOOK_WINDOWS_7);
    
        CMFCToolBar::SetBasicCommands(lstBasicCommands);
        
        return 0;
    }

    4. 在相应的View中去掉鼠标右键快捷菜单事件关联

    好了,搞定(alt+f4退出)。

  • 相关阅读:
    主进程与渲染进程的异同
    Electron node integration enabled 设置
    JS-函数总结
    JS-变量、作用域、垃圾回收机制总结
    python进阶知识笔记
    高级抽象函数
    mac支持的文件系统
    生成器generator & 迭代器iterator
    磁盘如何做才能让系统识别
    winPE盘能做什么
  • 原文地址:https://www.cnblogs.com/aarond/p/fullscreen.html
Copyright © 2011-2022 走看看