Вопрос о StretchBlt

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

Вопрос о StretchBlt

Сообщение XairOn » 22.12.2004 (Ср) 19:24

Здравствуйте, помогите пожалуйста с такой проблемой: мне нужно, что бы по щелчку пользователя на картинке (Picture1) часть этой картинки копировалась в Picture2, я использую StretchBlt всё работает нормально, но если щелкать где-нибудь скраю, то копируется не только то, что загружено в Picture1, а все что рядом находится (например другие окна) захватывает, как этого избежать, нужно что бы копировалось только содержимое Picture1. Может я не ту функцию юзаю???

deepslam
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 286
Зарегистрирован: 19.08.2002 (Пн) 2:25
Откуда: Russia

Сообщение deepslam » 22.12.2004 (Ср) 19:33

скорей всего ты параметры не правильно указываешь. Вот.
С параметрами поиграйся...

XairOn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 324
Зарегистрирован: 19.07.2004 (Пн) 20:20
Откуда: Irkutsk region

Сообщение XairOn » 22.12.2004 (Ср) 19:45

Спасибо большое..., ну что уж вы меня за дебила конченного считаете, какие там параметры, чего с ними играться, там же и так всё понятно - что копировать откуда копировать куда копировать и т.д. нужно что бы лишнее отсекалось каким-то образом, по ходу дела это уже за рамками данной функции (StretchBlt).

SBJocker
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 19.01.2004 (Пн) 16:57

Сообщение SBJocker » 22.12.2004 (Ср) 20:52

А параметры ширины и высосоты для исходного и приёмного контекстов для кого?

Сдаётся мне ты передаёшь туда данные размеров но не в пикселях а в твипах :)

deepslam
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 286
Зарегистрирован: 19.08.2002 (Пн) 2:25
Откуда: Russia

Сообщение deepslam » 22.12.2004 (Ср) 21:24

XairOn писал(а):Спасибо большое..., ну что уж вы меня за дебила конченного считаете, какие там параметры, чего с ними играться, там же и так всё понятно - что копировать откуда копировать куда копировать и т.д. нужно что бы лишнее отсекалось каким-то образом, по ходу дела это уже за рамками данной функции (StretchBlt).


во первых тебя за дебила не считал никто :)
Вот, а поиграться с параметрами я имел ввиду то, что тебе при указании ширины и высоты нужно на 15 значения делить, либо на screen.twipPerPixelY что то типа того короче говоря

XairOn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 324
Зарегистрирован: 19.07.2004 (Пн) 20:20
Откуда: Irkutsk region

Сообщение XairOn » 23.12.2004 (Чт) 18:13

Мы похоже друг друга не понимаем... ну допустим я переведу твипы в пиксели (хотя я так и делал ещё до того как вы посоветовали) ну а что изменится? Проблема-то в том, что при щелчке по картинке (если щелчок был около границы Picture1) захватывается кусок изображения за пределами окна (например если на заднем плане у меня рабочий стол, то кусок значка какого-нибудь), а мне нужно, что бы копировалось только то, что находится в Picture1. Как это сделать?

SBJocker
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 19.01.2004 (Пн) 16:57

Сообщение SBJocker » 23.12.2004 (Чт) 20:30

Значит копируемая обрасть заходит за границы окна PictureBox. в таком случае поставь его AutoRedraw в True и будет тебе счатье

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2056
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 23.12.2004 (Чт) 20:50

Доброго всем вечера...


2 all Отцы... Дело в том, что авторедрав тож по ходу не поможет

Мне кажется стоит выщитывать расстояние от курсора по X до ширины PICTURE2, а по Y до высоты и при копировании заносить в параметры X2 и Y2 в StrectchBlt..

:roll: :wink:

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2056
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 23.12.2004 (Чт) 20:51

ALX_2002 писал(а):Доброго всем вечера...


2 all Отцы... Дело в том, что авторедрав тож по ходу не поможет. Тогда ж чёрный кусок скопируется из памяти или те же окна.... Трабла то по идее в том, что начинают копироваться биты из другой области памяти...

Мне кажется стоит выщитывать расстояние от курсора по X до ширины PICTURE2, а по Y до высоты и при копировании заносить в параметры X2 и Y2 в StrectchBlt..

:roll: :wink:

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 24.12.2004 (Пт) 2:18

Раз тут уже началось собрание телепатов ;), то я тоже добавлю: Точкой сидения чувствую, что если выложить кусок кода - выяснить причину глюка будет значительно легче
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

XairOn
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 324
Зарегистрирован: 19.07.2004 (Пн) 20:20
Откуда: Irkutsk region

Сообщение XairOn » 24.12.2004 (Пт) 7:27

Дело в том, что авторедрав тож по ходу не поможет

Авторедрав как раз помог.
Правда он всех проблем не решил (например сдвиг картинки), но это уже мелочи.
SBJocker Спасибо большое... вот уж не мог подумать что моя проблема решится таким образом :-)

SBJocker
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 124
Зарегистрирован: 19.01.2004 (Пн) 16:57

Сообщение SBJocker » 24.12.2004 (Пт) 15:22

Нет проблем, всегда пожалуста...


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

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

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

    TopList