You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Visual Studio 2022 Community的MFC MDI项目设置为Win95 classic风格?

设置MFC MDI应用为Win95经典样式(编程实现方案)

确实可以通过编程方式实现,VS 2022的可视化设置面板没有提供直接选项,以下是具体实现步骤:

1. 全局禁用视觉主题

Win95经典样式本质是不启用Windows视觉主题,核心通过SetThemeAppProperties函数实现:

  • 在应用类(CxxxApp.cpp,xxx为你的应用名称)的InitInstance函数开头添加以下代码:
#include <uxtheme.h>
#pragma comment(lib, "uxtheme.lib")

BOOL CYourApp::InitInstance()
{
    // 关闭整个应用的主题支持,切换到经典样式
    SetThemeAppProperties(0);

    // 保留原有的初始化代码(如创建主框架、加载资源等)
    ...
}
  • SetThemeAppProperties(0)会全局禁用应用的主题渲染,让窗口、控件回到Win95风格的外观。

2. 调整窗口样式(可选)

如果需要更贴合Win95的窗口边框细节,可在主框架或MDI子窗口的PreCreateWindow函数中调整窗口样式:

主框架窗口(CMainFrame)

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
    // 调整为Win95风格的窗口边框(保留可调整大小的细边框)
    cs.style = WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS;
    cs.dwExStyle &= ~WS_EX_CLIENTEDGE;

    if(!CFrameWnd::PreCreateWindow(cs))
        return FALSE;

    return TRUE;
}

MDI子窗口(CChildFrame)

BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
    cs.style = WS_CHILD | WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS;
    cs.dwExStyle &= ~WS_EX_CLIENTEDGE;

    if(!CMDIChildWnd::PreCreateWindow(cs))
        return FALSE;

    return TRUE;
}

3. 控件样式调整(可选)

若对话框或控件仍显示现代风格,可对单个控件或整个窗口禁用主题:

// 对整个对话框禁用主题
SetWindowTheme(m_hWnd, L"", L"");

// 对单个控件禁用主题
SetWindowTheme(GetDlgItem(IDC_YOUR_CONTROL)->m_hWnd, L"", L"");

内容的提问来源于stack exchange,提问作者RK_diamond

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 16:52:23