我的设置有点非正统 - CLR托管在本机Win32应用程序中。应用程序加载并调用托管程序集(用C ++ / CLI编写)。 Assembly使用WPF ElementHost创建Windows窗体表单。 ElementHost将填充一个包含图像控件和标签控件的堆栈面板。
托管程序集包含嵌入的图像资源。资源文件的名称(在项目中)是“Images”,而有问题的特定资源的名称是“ISIconDB”。
如何将上述资源用作图像控件的源?
答案 0 :(得分:0)
想出来。
[DllImport("gdi32.dll")] int DeleteObject(IntPtr hObject);
//Drawing::Bitmap^ OrgResource;
Windows::Media::Imaging::BitmapSource^ Marshalled = nullptr;
try {
Marshalled = System::Windows::Interop::Imaging::CreateBitmapSourceFromHBitmap(OrgResource->GetHbitmap(),
IntPtr::Zero, Windows::Int32Rect::Empty, Windows::Media::Imaging::BitmapSizeOptions::FromEmptyOptions());
}
catch (...) {
Marshalled = nullptr;
}
finally {
DeleteObject(OrgResource->GetHbitmap());
}