Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Не отображается изображение на форме


Автор: serezhka1986 16.4.2020, 11:36
Здравствуйте!

Имеется собственная форма, это внешняя компонента для 1С (dll). Добавил в ресурсы свою картинку bmp, разместил ее на форме.
В редакторе выглядит так:

user posted image

Вызов формы:
Код

h_dialog = ::CreateDialog(hDll, MAKEINTRESOURCE(IDD_DIALOG1), hWnd_classname, (DLGPROC)DialogProc);

SetDlgItemText(h_dialog, IDC_STATIC1, "Ок");

::ShowWindow(h_dialog, SW_SHOW);


Но на выходе получается такая форма:

user posted image

Т.е. картинка не отображается, и подпись в Static Text отображается та, которую я прописал в редакторе, хотя вроде как меняю в коде на "Ок".
И в Static Text, и в Picture Control установил прозрачность в true, но фон белый.

Подскажите, пожалуйста, что я делаю не так?

P.S. Сильно не пинайте, я только учусь  smile 

Автор: serezhka1986 17.4.2020, 12:11
В общем, получил небольшой промежуточный результат... С изображением у меня как-то странно получилось, в Visual Studio при импорте в ресурсы файл *.bmp программа вообще не видела, выбрал "* все файлы" и загрузил картинку, но вывалило предупреждение, что неизвестный формат. 

В Picture Control эта картинка нормально отображается, а вот уже в скомпилированной dll-ке ее не видно. Добавил новый ресурс Bitmap и просто в редакторе нарисовал каракули, и мои каракули в скомпилированной форме нормально отображается, правда прозрачности так и нет - фон белый.

Но как мне все же загрузить свою картинку *.bmp без каких-либо ошибок и добиться прозрачности в картинке и в поле текста? Ничего дополнительно не нужно доставлять для VS?

user posted image

user posted image

Да, и почему текст самой надписи не изменился на "Ок"?

Автор: xvr 17.4.2020, 12:38
Насколько я помню в чистое описание диалога в ресурсах вообще нельзя поместить картинку. Как у вас выглядит *.rc файл?

Добавлено через 5 минут и 30 секунд
InitCommonControlsEx вызывали? Без неё многое не работает

Автор: serezhka1986 17.4.2020, 17:02
Оказалось, что не каждый bmp подходит smile
Сохранил в фотошопе картинку как 32bit *.bmp и она нормально загрузилась в ресурсы без каких-либо предупреждений, хотя и дальше не видно при выборе файла, приходится сбрасывать фильтр по расширению файла (* Все файлы). В скомпилированной dll-ке отображается уже моя картинка, хотя фон и не прозрачный.

Ну с фоном картинки еще могу смирится, но вот почему фон Static Text белый?! 

Текст сменился на "ок". Тут, стыдно признаться, но прошляпил Ид поля. Написал "IDC_STATIC1", хотя по факту там "IDC_STATIC2"  smile 


Цитата(xvr @  17.4.2020,  12:38 Найти цитируемый пост)
InitCommonControlsEx вызывали? Без неё многое не работает

Вызывал, ничего не поменялось... ((

В общем, вопрос с фоном Static Text остается актуальным, может кто подскажет

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)