按钮在 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 本机)的主要内容,如果未能解决你的问题,请参考以下文章
在 macOS 和 Windows 上使用 PyInstaller 编译时,简单的 PyQt5 GUI 看起来像 GTK