GdipDrawString

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

GdipDrawString

Сообщение Kovu » 01.02.2006 (Ср) 17:43

Почему если сделать

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

   Dim rc As RECTf
With rc
.Left = 100
.Bottom = 300
.Right = 400
.Top = 100
End With
        Call GdipCreateFromHDC(mDC, graphics)
        Call GdipLoadImageFromFile(StrConv(pngPath, vbUnicode), img)
        Call GdipGetImageHeight(img, lngHeight)
        Call GdipGetImageWidth(img, lngWidth)
        Call GdipDrawString(graphics, "Xardas", 6, 0&, rc, ByVal 0&, 0&)
        Call GdipDrawImageRect(graphics, img, 0, 0, lngWidth, lngHeight)


Тескт так и не появляется, тогда как изображение нормально загружается ? :roll:
Если всё делать своими ручками, они скоро отвалятся !

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 02.02.2006 (Чт) 12:22

Как всегда никто не знает, или знает но молчит как партизан... :roll: :cry:
Если всё делать своими ручками, они скоро отвалятся !

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

Сообщение Viper » 02.02.2006 (Чт) 12:24

версия: а изображение строку не перекрывает часом?
Весь мир матрица, а мы в нем потоки байтов!

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 02.02.2006 (Чт) 12:43

Версия правильная, строка должна рисоваться НА изображении =)
Но тем не менее её там нема :)
P.S. Строка же рисуется после загрузки изображения, разве не так?
Если всё делать своими ручками, они скоро отвалятся !

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

Сообщение GSerg » 02.02.2006 (Чт) 14:30

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

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 02.02.2006 (Чт) 15:49

Код: Выделить всё
Call GdipLoadImageFromFile(StrConv(pngPath, vbUnicode), img)  ' загружаем изображение в img
        Call GdipGetImageHeight(img, lngHeight) 'узнаем высоту изображения
        Call GdipGetImageWidth(img, lngWidth) 'узнаем ширину изображения
        Call GdipDrawString(graphics, "Xardas", 6, 0&, rc, ByVal 0&, 0&) 'рисуем строку
        Call GdipDrawImageRect(graphics, img, 0, 0, lngWidth, lngHeight) ' рисуем изображение
'если 2 последние строки поменять результат не изменится и появится только изображение, без текста

Скажите чего я не догоняю :)
Если всё делать своими ручками, они скоро отвалятся !

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 02.02.2006 (Чт) 18:47

Ну помогите пожааалуйста :roll:
Если всё делать своими ручками, они скоро отвалятся !

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

Сообщение GSerg » 03.02.2006 (Пт) 5:45

Ты не указываешь font и brush.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 03.02.2006 (Пт) 14:07

Хы помогло, спасибо :)
Очень порадовал автомультилайн :)
Если всё делать своими ручками, они скоро отвалятся !

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 03.02.2006 (Пт) 15:39

Ещё вопросик: как сделать чтоб Alignment каждой строки был по центру, ибо вот этот код:
Код: Выделить всё
Call GdipStringFormatGetGenericDefault(LAlign)
Call GdipSetStringFormatLineAlign(LAlign, StringAlignmentCenter)
Call GdipDrawString(graphics, StrConv(ConstStr, vbUnicode), Len(ConstStr), hFont, rc, ByVal LAlign, hBrush)

рисует только первую часть строки по центру заданного ректа, а остальное под началом первой части ?
Если всё делать своими ручками, они скоро отвалятся !

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 04.02.2006 (Сб) 18:21

Обидно, что никто не знает....
Ладно придется разбивать текст :roll:
Если всё делать своими ручками, они скоро отвалятся !

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 04.02.2006 (Сб) 18:26

Разбить текст на строки и выводить каждую в свой, рассчитанный, Rect? :/

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 04.02.2006 (Сб) 20:34

Разбить текст на строки,один раз определить рект а потом по нему OffsetRect'om проходится, правда гхм это не самый удачный выход :?
Если всё делать своими ручками, они скоро отвалятся !


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

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

Сейчас этот форум просматривают: Google-бот и гости: 159

    TopList