C++ 从资源加载VCL样式
有没有人有使用资源来处理样式的经验。我正在编写一个程序,我们为它创建了自定义样式。我们将其保存为.style和.vsf。因为我们不希望用户看到/更改程序的样式,所以我们希望将其包含在资源文件(.res)中,这是按照下一个链接中的说明进行的:之后,创建的文件(使用.style和.vsf测试)作为RC数据放在资源文件中。 这就是准备工作,现在什么都不起作用了。(双主) 这也不起作用:C++ 从资源加载VCL样式,c++,resources,c++builder,vcl-styles,C++,Resources,C++builder,Vcl Styles,有没有人有使用资源来处理样式的经验。我正在编写一个程序,我们为它创建了自定义样式。我们将其保存为.style和.vsf。因为我们不希望用户看到/更改程序的样式,所以我们希望将其包含在资源文件(.res)中,这是按照下一个链接中的说明进行的:之后,创建的文件(使用.style和.vsf测试)作为RC数据放在资源文件中。 这就是准备工作,现在什么都不起作用了。(双主) 这也不起作用: TStyleManager::LoadFromResource((unsigned int)HInstance, &
TStyleManager::LoadFromResource((unsigned int)HInstance, "StyleName", RT_RCDATA);
TStyleManager::SetStyle("StyleName");
也不起作用
TStyleManager_TStyleServicesHandle MyStyle;
MyStyle = TStyleManager::LoadFromResource((unsigned int)HInstance, "StyleName", RT_RCDATA);
TStyleManager::SetStyle(MyStyle);
导致错误消息的所有三种方法:样式句柄无效
从文件加载相同的样式可以:
TStyleManager::LoadFromFile(stylePath + "StyleName.vsf");
TStyleManager::SetStyle("StyleName");
我在Delphi(DX10.3)中也遇到了同样的问题,下面的问题对我很有用 基本上与“TStyleManager::LoadFromResource”的调用相同,但没有指定可选参数“RT_RCDATA” 但是,资源类型“VCLSTYLE”是正确加载样式所必需的。在IDE中添加资源时,使用[Project]>[Resources and Pics…]只能在对话框中指定RCDATA,这是错误的。但您可以直接手动输入资源类型,键盘为“VCLSTYLE”。IDE会记住此设置,现在资源可以作为正确的类型使用。如前所述,它与Delphi10.3配合使用,而与构建器配合使用则取决于一次尝试 向你问好,马蒂亚斯
TStyleManager::LoadFromFile(stylePath + "StyleName.vsf");
TStyleManager::SetStyle("StyleName");
MyStyle = TStyleManager::LoadFromResource((unsigned int)HInstance, "StyleName");
TStyleManager::SetStyle(MyStyle);