БлогNot. Studio Express не может показать картинку из своих ресурсов?

Studio Express не может показать картинку из своих ресурсов?

Просто не вижу другого варианта. Полной сборки сейчас под рукой нет.

Действия были такими: Ctrl + Alt + L (то есть, перейти в окно Обозреватель решений) - папка Файлы ресурсов - (правая кнопка мыши) - Добавить - Существующий элемент - показываем на нужный файл. На форме только PictureBox.

Два варианта кода для кошки из этой заметки:

Reflection::Assembly^ pxAssembly = Reflection::Assembly::GetExecutingAssembly();
String^ pxResName = pxAssembly->GetName()->Name + ".Form1";
System::Resources::ResourceManager ^s_pxResourceManager = 
 (gcnew Resources::ResourceManager(pxResName,pxAssembly));
pictureBox1->Image = (cli::safe_cast<Drawing::Bitmap^>(s_pxResourceManager->GetObject("cat.png")));
System::ComponentModel::ComponentResourceManager^  resources = 
 (gcnew System::ComponentModel::ComponentResourceManager(Form1::typeid));
pictureBox1->BackgroundImage  = 
 (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject("cat.png")));

Оба не "ругаются" при компиляции или runtime, но и не показывают картинки. BackgroundImage вместо Image не помогает.

Вообще-то выход понятен - просто взять ImageList, и использовать картинки оттуда. Но стало интересно... потом посмотреть: для использования ресурсов свой формы - достаточно System::ComponentModel::ComponentResourceManager; для использования ресурсов всей программы - Assembly Class или вот ещё. msdn: Работа с ресурсами


теги: графика ошибка c++ памятка studio

19.11.2015, 02:26; рейтинг: 4575