按钮在 Windows GUI 应用程序上看起来很丑(而不是 Windows 本机)

Posted

技术标签:

【中文标题】按钮在 Windows GUI 应用程序上看起来很丑(而不是 Windows 本机)【英文标题】:Buttons look ugly on a Windows GUI app (instead of windows native) 【发布时间】:2020-01-07 12:17:57 【问题描述】:

我正在使用 C 制作一个简单的 Windows GUI 应用程序。但 UI 元素看起来非常丑陋(就像 1990 年的那样),而不是我通常期望的原生 Windows 7 控件。这是为什么?我需要做什么才能获得本机 Windows 7 控件? (我使用的是 Windows 7)

我也想知道

    为什么标题栏看起来像 Windows 7 原生(具有透明度)而不是旧样式? 但其他控件看起来很旧?

这是我的 C 程序

#include <windows.h>

int STDCALL;

WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmd, int nShow)

    MessageBox (NULL, "Hello, Windows!", "Hello", MB_OK);
    return 0;

结果看起来像顶部的 2 个窗口。但我希望它看起来像底部的那个。

【问题讨论】:

我会假设排序答案是这是默认值。您要求您的操作系统设计 2 个窗口,但也许您需要要求它来装饰它们? @TsakiroglouFotis 你如何要求操作系统原生装饰它? 我现在正在寻找(lunchbrake)tbh。 docs.microsoft.com/en-us/windows/win32/api/winuser/… @TsakiroglouFotis 没有关于原生控件样式的内容 谷歌“c++ 启用视觉样式”取得成功。 【参考方案1】:

感谢 cmets 并为我指明了正确的方向,我通过添加 appname.exe.manifest 文件解决了这个问题,然后重新编译了我的程序,它现在具有 Windows 7 原生样式而不是经典样式。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity version="1.0.0.0" processorArchitecture="*"
        name="CompanyName.ProductName.YourApplication" type="win32"/>
    <description>Your application description here.</description>
    <dependency>
        <dependentAssembly>
            <assemblyIdentity name="Microsoft.Windows.Common-Controls"
                version="6.0.0.0" type="win32" processorArchitecture="*"
                publicKeyToken="6595b64144ccf1df" language="*"/>
        </dependentAssembly>
    </dependency>
</assembly>

【讨论】:

欢迎您。你是在codeproject.com/Articles/5253279/… 之后开始看这个的吗?

以上是关于按钮在 Windows GUI 应用程序上看起来很丑(而不是 Windows 本机)的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的下一个和上一个按钮在 IOS 上看起来很奇怪?

在 macOS 和 Windows 上使用 PyInstaller 编译时,简单的 PyQt5 GUI 看起来像 GTK

Spotify Windows 应用程序使用哪些 GUI 库?漂亮的金属无边框外观?

适用于Windows的PHP驱动的GUI应用程序

键盘选项卡停止在 Windows GUI 上工作

如何让tkinter自动关闭窗口后显示另一个窗口?