У имага - Visible=False, у него StretchBlt...

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

У имага - Visible=False, у него StretchBlt...

Сообщение Debugger » 23.11.2006 (Чт) 22:05

Что делать? Решения было при помощи CopyMemory, но мне не сказали какое... :?
Я искал, искал.... И ничего не нашел. :evil:

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 23.11.2006 (Чт) 23:50

Несколько раз прочел название темы. Так и не понял, в чем вопрос...
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 24.11.2006 (Пт) 8:09

автор забыл задать вопрос.... бывает... :D
Весь мир матрица, а мы в нем потоки байтов!

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Сообщение Debugger » 24.11.2006 (Пт) 16:38

Да, забыл. Извините.
Есть изображение. Через его hdc на форму делается StretchBlt (объяснить сложно, но изображение копируется!). А вот если Img.Visible=False, то изображение копируется, но уже пустое :( как этого избежать? Вроде при помощи CopyMemory, но как?
И ещё: как использовать маску?

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 24.11.2006 (Пт) 16:55

Проще всего вместо .Visible=False, сдвинуть изображение за пределы видимости :D ... Но это так, из разряда извращений...
Salus populi suprema lex

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 24.11.2006 (Пт) 17:10

Н-да... У Image нет hDC. И CopyMemory здесь совершенно не при чем.
Какая цель преследуется?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Сообщение Debugger » 24.11.2006 (Пт) 18:56

У имага нету, зато у PictureBox есть! И ещё как!
Цель - возможность StretchBlt'ить имаг при Visuble=False. Когда Visible=True, то всё ок: изображение копируется. Но когда Visible=False то ничего не получается.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 24.11.2006 (Пт) 20:22

AutoRedraw пробовал устанавливать? ;-)
Изображение

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 24.11.2006 (Пт) 21:42

SendMessage Picture1.hwnd, &HF, Me.hDC, ByVal 0

Me.hDC можно заменить на временный.
Изображение

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Сообщение Debugger » 24.11.2006 (Пт) 22:58

О да!
И ещё: как использовать маску изображения и какой есть аналог Me.Cls на API?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 24.11.2006 (Пт) 23:44

keks-n писал(а):SendMessage Picture1.hwnd, &HF, Me.hDC, ByVal 0

Me.hDC можно заменить на временный.


При выкладывании тобою данного метода надо обязательно указывать (C) Хакер. :lol:

Потому как, помнится, кое-кто доказывался мне, что таким методом нельзя ничего сделать, и даже приводил мне цитаты из MSDN, о том что нельзя, и даже обвинял меня в неграмматности.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 25.11.2006 (Сб) 8:59

А что, AutoRedraw правда не помог? Да не поверю.
Изображение

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Сообщение Debugger » 25.11.2006 (Сб) 15:33

Auto Redraw помог.
FPS - 5000. (правда ещё непонятно, это вообще или "так")
На вопросы никто не ответил.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 25.11.2006 (Сб) 15:45

Debugger писал(а):И ещё: как использовать маску изображения и какой есть аналог Me.Cls на API?


1. Маску? Какая маска имеется ввиду?
2. Что такое Cls? Закраска цветом фона.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Сообщение Debugger » 25.11.2006 (Сб) 15:53

Маска - это типа имага, которую надо копировать на (под) наше изобра-жение, чтобы наше изображение обрезалось по маске.. :P
Сам не понял, что сказал...
Короче, в маске - где чёрный, там ривать нельзя, где белый - то место копируем.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 25.11.2006 (Сб) 15:54

Изображение

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Сообщение Debugger » 25.11.2006 (Сб) 16:00

При чём здесь вращение?
Гм, а как "по быстрому" залить цветом фона?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 25.11.2006 (Сб) 16:14

Debugger писал(а):При чём здесь вращение?

Читать то, что ниже заголовка, случайно не пробовал?
Там пример работы с маской.
Изображение

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 25.11.2006 (Сб) 20:02

Хакер
При выкладывании тобою данного метода надо обязательно указывать (C) Хакер.

Неа. Я тебе первым о нём сообщил, он у меня заработал, но довольно криво (сам виноват - надо было ещё кое что в том случае посылать). Полез в MSDN, нашел "причины" неработоспособности и забил.
Изображение

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Сообщение Debugger » 25.11.2006 (Сб) 21:55

А что с Cls? Кто знает, что быстрей Me.Cls и StretchBlt с путой имаги?

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 25.11.2006 (Сб) 22:03

Cls - самая корявая вещь во всём базике, ИМХО.
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 26.11.2006 (Вс) 9:35

У панталонов появились новые адепты? :-?
Что корявого в Cls?
Изображение

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 26.11.2006 (Вс) 13:51

Не в ней, а в обычном её использовании. Мне вообще, подход к графике в VB не нравится - то что было в QuickBasic 4.5 на уровне языка приходится делать различными API.
Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 26.11.2006 (Вс) 14:29

keks-n писал(а):Мне вообще, подход к графике в VB не нравится - то что было в QuickBasic 4.5 на уровне языка приходится делать различными API.

Например?
Lasciate ogni speranza, voi ch'entrate.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 26.11.2006 (Вс) 14:56

Например PCOPY. Работа со страницами видеопамяти.
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 26.11.2006 (Вс) 15:40

keks-n, ты как себе это представляешь в Windows?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 27.11.2006 (Пн) 16:22

Можно было реализовать аналогичную функциональность. Просто иначе приходится мучиться с DC в памяти и работой с ними через API.
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.11.2006 (Пн) 16:24

"Аналогичная функциональность", в той степени, в которой она может быть в винде, дана тебе в виде PaintPicture.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 27.11.2006 (Пн) 16:26

Другой вопрос, зачем убрали Paint ?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 27.11.2006 (Пн) 16:33

Влом было писать аналог.
Изображение

След.

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

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

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

    TopList  
cron