BMP из ресурса на форму

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
netdemon
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 179
Зарегистрирован: 04.09.2007 (Вт) 15:51

BMP из ресурса на форму

Сообщение netdemon » 21.10.2007 (Вс) 22:42

Код: Выделить всё

Private Sub Form_DblClick()
  Dim bm As BITMAP
  Dim mem_bm As Long
  Dim mem_dc As Long
  Dim orig_bm As Long

     mem_dc = CreateCompatibleDC(Me.hdc)
     mem_bm = LoadBitmap(App.hInstance, "lw")
     orig_bm = SelectObject(mem_dc, mem_bm)
         
     GetObjectAPI mem_bm, Len(bm), bm
     
     TransparentBlt Me.hdc, Pice(0).left, Pice(0).top, _
       Pice(0).right - Pice(0).left, Pice(0).bottom - Pice(0).top, _
         mem_dc, 0, 0, bm.bmWidth, bm.bmHeight, vbWhite
     
      SelectObject mem_dc, orig_bm
     
       DeleteObject mem_bm
     
End Sub



Изображение не появляется на форме :(
Последний раз редактировалось netdemon 21.10.2007 (Вс) 23:07, всего редактировалось 1 раз.
Лишь разум потерянный бесповоротно мною. Наполнить может сердце мне тоской.
Нельзя обнять необъятное и впихнуть невпихуемое.

AGP
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 79
Зарегистрирован: 20.03.2006 (Пн) 11:33
Откуда: Донецк, Украина

Сообщение AGP » 21.10.2007 (Вс) 22:47

а почему именно из ресурса? попробуй проще - создай невидимый пикчур бокс, и помести рисунок в него. потом можешо его присваивать другим пикчурам, просто выводить, и т.д. конечно не самый красивый вариант, но в условиях неумения работы с ресурсами выглядит наиболее подходящим =)
ЖИЗHЬ █▒▒▒▒▒▒▒▒▒▒ [15.2%] ПРОЖИТО

http://www.rrenderer.h16.ru/phpBB2 - поддержи отечественного производителя 3Д графики!

netdemon
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 179
Зарегистрирован: 04.09.2007 (Вт) 15:51

Сообщение netdemon » 21.10.2007 (Вс) 23:02

AGP писал(а):а почему именно из ресурса? попробуй проще - создай невидимый пикчур бокс, и помести рисунок в него. потом можешо его присваивать другим пикчурам, просто выводить, и т.д. конечно не самый красивый вариант, но в условиях неумения работы с ресурсами выглядит наиболее подходящим =)


Потомучто если делать, то делать по человечески, а не через Заднее место. Спасибо Хакеру за попытку меня к этому приучить.

К тому же твой метод будет медленнее и гемора с ним больше. Я его уже пробовал и он не устраивает.

У меня этих рисунков целых 50 штук и что для каждого Pbox делать? Не жирно ли будет? :x
Лишь разум потерянный бесповоротно мною. Наполнить может сердце мне тоской.
Нельзя обнять необъятное и впихнуть невпихуемое.

AGP
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 79
Зарегистрирован: 20.03.2006 (Пн) 11:33
Откуда: Донецк, Украина

Сообщение AGP » 22.10.2007 (Пн) 18:40

http://www.vbstreets.ru/VB/Articles/66233.aspx
http://www.sdteam.com/?tid=474
http://www.vbnet.ru/samples/showgroup.aspx?id=1

на последней ссылке есть аж два примера решения твоей проблемы. умей искать ;)
ЖИЗHЬ █▒▒▒▒▒▒▒▒▒▒ [15.2%] ПРОЖИТО

http://www.rrenderer.h16.ru/phpBB2 - поддержи отечественного производителя 3Д графики!

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Сообщение Saturn.65 » 23.10.2007 (Вт) 8:22

Что-то у тебя код навороченый.
Вроде все гораздо проще.

Загрузка графических данных

Объект = LoadResPicture(index,format)
Index – идентификационный номер строки с картинкой
Format – тип загружаемых данных: VbResBitmap - картинки
VbResCursor - курсоры
VbResIcon - иконки

Объект – PictureBox, Image и все остальное, куда можно грузить графику

Попробуй этак.

netdemon
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 179
Зарегистрирован: 04.09.2007 (Вт) 15:51

Сообщение netdemon » 23.10.2007 (Вт) 9:53

Saturn.65 писал(а):Что-то у тебя код навороченый.
Вроде все гораздо проще.

Загрузка графических данных

Объект = LoadResPicture(index,format)
Index – идентификационный номер строки с картинкой
Format – тип загружаемых данных: VbResBitmap - картинки
VbResCursor - курсоры
VbResIcon - иконки

Объект – PictureBox, Image и все остальное, куда можно грузить графику

Попробуй этак.



Вы оба не в теме. Читайте внимательно вопрос и смотрите код.

Функция TranspepentBlt НЕ случайно здесь применяется.

Рисунки в ресурсе с белым фоном их нужно загрузить без этого фона и поместить на форму в позиции указанной Pice(...).

Pice()-Массив типа RECT Всего в нём 64 элемента. Т.е. 64 позиции для вывода рисунка.

Form.PaintPicture тоже не подходит.
Вложения
Ches.rar
(24.98 Кб) Скачиваний: 44
Лишь разум потерянный бесповоротно мною. Наполнить может сердце мне тоской.
Нельзя обнять необъятное и впихнуть невпихуемое.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Сообщение Saturn.65 » 23.10.2007 (Вт) 10:39

Обязательно BMP? Я иной раз белый фон в фотошопе под цвет формы делаю.

netdemon
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 179
Зарегистрирован: 04.09.2007 (Вт) 15:51

Сообщение netdemon » 23.10.2007 (Вт) 11:29

В общем первоначальный код заработал.

Вот так тока поменял:

Код: Выделить всё
TransparentBlt Me.hdc, Pice(0).left, Pice(0).top, _
       bm.bmWidth,  bm.bmHeight, _
         mem_dc, 0, 0, bm.bmWidth, bm.bmHeight, vbWhite



Оказалось что этот код работает только в скомпиленном проекте. Запускаю Exe работает, а из IDE нифига.
Лишь разум потерянный бесповоротно мною. Наполнить может сердце мне тоской.
Нельзя обнять необъятное и впихнуть невпихуемое.

t116
Бывалый
Бывалый
 
Сообщения: 209
Зарегистрирован: 12.01.2007 (Пт) 12:11

Сообщение t116 » 23.10.2007 (Вт) 11:30

netdemon
Твоя программа ссылается на XP_Button.ocx которого нет.

netdemon
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 179
Зарегистрирован: 04.09.2007 (Вт) 15:51

Сообщение netdemon » 23.10.2007 (Вт) 11:33

Вот так получается.
Вложения
view.JPG
view.JPG (6.32 Кб) Просмотров: 388
Лишь разум потерянный бесповоротно мною. Наполнить может сердце мне тоской.
Нельзя обнять необъятное и впихнуть невпихуемое.

netdemon
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 179
Зарегистрирован: 04.09.2007 (Вт) 15:51

Сообщение netdemon » 23.10.2007 (Вт) 11:37

t116 писал(а):netdemon
Твоя программа ссылается на XP_Button.ocx которого нет.


Вот что получилось:

[/img]
Вложения
XP_Button.rar
(15.42 Кб) Скачиваний: 39
view.JPG
view.JPG (11.11 Кб) Просмотров: 385
Лишь разум потерянный бесповоротно мною. Наполнить может сердце мне тоской.
Нельзя обнять необъятное и впихнуть невпихуемое.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 64

    TopList  
cron