Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从资源加载VCL样式_C++_Resources_C++builder_Vcl Styles - Fatal编程技术网

C++ 从资源加载VCL样式

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, &

有没有人有使用资源来处理样式的经验。我正在编写一个程序,我们为它创建了自定义样式。我们将其保存为.style和.vsf。因为我们不希望用户看到/更改程序的样式,所以我们希望将其包含在资源文件(.res)中,这是按照下一个链接中的说明进行的:之后,创建的文件(使用.style和.vsf测试)作为RC数据放在资源文件中。 这就是准备工作,现在什么都不起作用了。(双主)

这也不起作用:

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);