Страница: 1 |
Вопрос: Изменения размера Image | Добавлено: 06.03.09 20:08 |
Автор вопроса: ![]() |
Привет всем.
Ребята такой вопросик, как сделать имаже, чтобы размер компонента можно было менять в запущеном проекте - как изменение размеров формы - мышкой? |
Ответы | Всего ответов: 13 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 295725312 Вопросов: 53 Ответов: 830 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 06.03.09 20:48 |
Привет тебе тоже.
Ты смотри на возможности компонента при различных действиях, это наведет тебя на мысли как его использовать. Смотреть нужно в скобках например как здесь Private Sub Image1_MouseMove() |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 295725312 Вопросов: 53 Ответов: 830 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 06.03.09 20:53 |
Раскладка-(Button As Integer, Shift As Integer, X As Single, Y As Single)
1 Button = vbLeftButton если левой клавишей прижали рисунок и неотпускаем 2 пропускаем 3 Image1.Width = X + 10 ширина для чкго плюс? да что бы непотерять фокус. 4 Image1.Height = Y + 10 высота |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ICQ: презираю Вопросов: 10 Ответов: 20 |
Профиль | Цитата | #3 | Добавлено: 06.03.09 21:27 |
Не отшлифованный код на NET выглядит примерно так(так же как у Боцмана)
|
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 214-179-991 Вопросов: 42 Ответов: 272 |
Профиль | Цитата | #4 | Добавлено: 06.03.09 22:20 |
Спасиб - решение интересное - спасиб) |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 214-179-991 Вопросов: 42 Ответов: 272 |
Профиль | Цитата | #5 | Добавлено: 06.03.09 22:23 |
О ребята если знаете, то подскажите как сдесь ещё можно использовать АПИ функцию BitBlt, чтобы картинка не моргала при изменении размеров |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 295725312 Вопросов: 53 Ответов: 830 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 06.03.09 23:13 |
Васика нет, немогу проверить но мысль такая
Может сделать типа шага если удалилась кордината болше или меньше на 10 от существующего размера тогда
|
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: adamis@list.ru Вопросов: 153 Ответов: 3632 |
Профиль | Цитата | #7 | Добавлено: 07.03.09 11:47 |
Может тада уже лучше strеtchblt использовать?
Или как он там правильно называется. |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 214-179-991 Вопросов: 42 Ответов: 272 |
Профиль | Цитата | #8 | Добавлено: 07.03.09 14:58 |
Я бы использовал, но не нашёл инфы на неё, и как я понял её можно использовать только к picture, а вот как не понял - чтобы она изменяло размер рисунка. |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: adamis@list.ru Вопросов: 153 Ответов: 3632 |
Профиль | Цитата | #9 | Добавлено: 07.03.09 17:43 |
Ни Stretch ни BitBlt не поможет от мерцания сам по себе, полюбому пикчербокс нужен. |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 214-179-991 Вопросов: 42 Ответов: 272 |
Профиль | Цитата | #10 | Добавлено: 07.03.09 19:25 |
Да по ходу придётся с мерцанием использовать - так как мне надо на вб6 это реализовать. В ВБ Нет всё красиво и просто.
Нашёл вот ещё примерчик на вб6, но с ним реализовать не получается,не работает при внесении изменений Функция для изменения размеров картинки. Добавьте на форму 2 PictureBox и 1 CommandButton. Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal Nwidth As Long, ByVal Nheight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long Const SRCCOPY = &HCC0020 Private Sub ImgResize(src As PictureBox, TmpPic As PictureBox, mWidth As Long, mHeight As Long) src.AutoRedraw = False TmpPic.AutoRedraw = True TmpPic.Height = mHeight 'установка размеров невидимого picturebox TmpPic.Width = mWidth StretchBlt TmpPic.hdc, 0, 0, mWidth, mHeight, src.hdc, 0, 0, src.Width, src.Height, SRCCOPY 'сохранить временной файл на диске SavePicture TmpPic.Image, App.Path + "\tempimg.bmp" 'перезагрузить оригинальный picturebox src.AutoSize = True src.Picture = LoadPicture(App.Path + "\tempimg.bmp" ![]() 'удалить временной файл Kill App.Path + "\tempimg.bmp" 'очистить невидимый picturebox TmpPic.Picture = LoadPicture() 'пример для вызова функции 'ImgResize Picture1, Picture2, Picture1.Width / 2, Picture1.Height / 2 End Sub Private Sub Command1_Click() ImgResize Picture1, Picture2, Picture1.Width / 2, Picture1.Height / 2 End Sub Private Sub Form_Load() Picture2.Visible = False End Sub переделал и работает конешно ух - такое с картинкой творит что пипец
|
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: adamis@list.ru Вопросов: 153 Ответов: 3632 |
Профиль | Цитата | #11 | Добавлено: 07.03.09 19:46 |
Может я чето не понял, но нафиг тебе самому ресайзить рисунок в имедже?
Достаточно его свойство Stretch поставить True. |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 214-179-991 Вопросов: 42 Ответов: 272 |
Профиль | Цитата | #12 | Добавлено: 07.03.09 22:28 |
Смит это на ВБ6 надо. Имедж - стретч работает - но при изменении размеры блики вылазиют - не красиво, но на ВБ6 видно это так просто не решить, на ВБ Нет всё легко даже АПИ использовать не надо, но мне надо было сделать на вб6, я сделал так с бликами - во время изменения бликает, но потом всё нормально -мелоч конешно но хотел избавится. Если потом на ВБ нэт буду писать то будет всё красиво. |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 8068014 Вопросов: 18 Ответов: 817 |
Web-сайт: Профиль | Цитата | #13 | Добавлено: 07.03.09 23:02 |
когда же гуглом научатся пользоваться.
http://lmgtfy.com/?q=BitBlt+%D0%BC%D0%B5%D1%80%D1%86%D0%B0%D0%BD%D0%B8%D0%B5 получаем подробное описание потенциальных причин мерцания и способы их избежания. нада бы добавить теги в топики, а при клике на теге открывается гугл с поиском. более чем уверен - половина топиков умирала бы после создания. http://deadbeef.narod.ru/work/articles/flicker.htm |
Страница: 1 |
|