Winapi Win32 API:创建具有Aero效果的按钮
我可以用CreateWindow函数创建按钮,如Winapi Win32 API:创建具有Aero效果的按钮,winapi,mingw,win32gui,Winapi,Mingw,Win32gui,我可以用CreateWindow函数创建按钮,如 CreateWindow(L"BUTTON", "Button label", WS_VISIBLE | WS_CHILD, 0, 0, 100, 25, parentWnd, ID, NULL, NULL); 它工作完美,但按钮并没有光泽效果,字体并没有抗锯齿 我还汇编了清单: <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
CreateWindow(L"BUTTON", "Button label", WS_VISIBLE | WS_CHILD, 0, 0, 100, 25, parentWnd, ID, NULL, NULL);
它工作完美,但按钮并没有光泽效果,字体并没有抗锯齿
我还汇编了清单:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type="Win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0"
processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
</dependentAssembly>
</dependency>
</assembly>
汇编时使用:
i686-w64-mingw32-windres -i resources.txt -OCOFF resources.res
最后链接到resources.res
,但没有任何结果
当我创建清单并将其放在exe文件附近时,一切正常。但当我试图将清单编译成资源时,我没有任何效果 如何修复它?我不喜欢使用任何libs,特别是像Qt这样大的libs 编辑:
确保
CREATEPROCESS\u MANIFEST\u RESOURCE\u ID
定义为1
或将清单行替换为以下内容:
1 RT_MANIFEST "manifest.xml"
或
您没有链接.rc文件,而是链接了.res文件Aero效果,还是希望您的应用程序使用新的Windows XP/Vista/7样式的主题?如果是,则您必须使用创建应用程序清单并初始化公共控件。当我创建清单并将其放置在exe文件附近时,一切正常。但当我试图将清单编译成资源时,我没有任何效果。你做得不对。您没有提供完整的详细信息,因此我们无法告诉您做错了什么。@bukkojot您是否链接到comctl32并调用InitCommonControls?请参阅此页面:@bukkojot:这意味着您的开发环境没有定义
CREATEPROCESS\u MANIFEST\u RESOURCE\u ID
和/或RT\u MANIFEST
常量,因此您最终将创建一个实际名称为“CREATEPROCESS\u MANIFEST\u RESOURCE\u ID”
的资源,和/或实际名称为“RT\u MANIFEST”
而不是类型为24的资源类型。使用资源编辑器/查看器验证错误的解决方案。最好嵌入资源。@DavidHeffernan你是什么意思?这应该是“嵌入式资源”解决方案。在分发包中不存在单独的“MYAPPNAME.exe.manifest”文件的情况下,它应该可以工作。除非OP另有说明。@DavidHeffernan Asker已经知道非嵌入式解决方案。请参阅原始帖子,其中写道“当我创建清单并将其放在exe文件附近时,一切正常。但当我试图将清单编译成资源时,我没有任何效果”整个问题都是关于嵌入式解决方案的。@DavidHeffernan我认为唯一的问题是CREATEPROCESS\u MANIFEST\u RESOURCE\u ID
没有声明为1
。我用MinGW在代码块上试过了,效果不错。有时我会在我的帖子中添加一些没有意义的迷信。我删除了那部分。
1 RT_MANIFEST "manifest.xml"
1 24 "manifest.xml"