Текст в PictureBox как в Corel

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Timoxa
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 11.01.2006 (Ср) 8:50

Текст в PictureBox как в Corel

Сообщение Timoxa » 05.10.2006 (Чт) 7:47

Необходимо выводить текст в PictureBox. Как реализоавть знаю.
Но затем его необходимо перещать и редактировать. Например так как сделано в Corel.

Blame!
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 17
Зарегистрирован: 14.03.2006 (Вт) 17:58

Сообщение Blame! » 05.10.2006 (Чт) 8:54

А как ты его выводишь (рисуешь или label исп.)?

Blame!
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 17
Зарегистрирован: 14.03.2006 (Вт) 17:58

Сообщение Blame! » 05.10.2006 (Чт) 9:28

Для перемещения label'a по форме

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

Option Explicit
Private tr As Boolean
Private X1 As Integer
Private Y1 As Integer

Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  tr = True
  X1 = X
  Y1 = Y
End Sub

Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  If tr = True Then
    Me.Label1.Left = (Me.Label1.Left + X) - X1
    Me.Label1.Top = (Me.Label1.Top + Y) - Y1
  End If
End Sub

Private Sub Label1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  tr = False
End Sub


Для редактирования подставляешь за место label текстовое поле

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

Сообщение BV » 05.10.2006 (Чт) 9:36

2 Timoxa

CorelDraw - не растровый, а векторный редактор. Там создается слой с набором свойств и выводится он по своим функциям а не так как ты знаешь. Для тебя будет проще оставить эту затею :)
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;

Timoxa
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 11.01.2006 (Ср) 8:50

Сообщение Timoxa » 05.10.2006 (Чт) 15:41

Конечно с Label я думал как вариант, но надо еще масштабировать и поварачивать, а вот поваричивать его проблематично.

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

Сообщение tyomitch » 05.10.2006 (Чт) 15:58

Лейбл, который легко поворачивать: http://vbrussian.com/Controls.asp?ID=100
Изображение

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 05.10.2006 (Чт) 16:07

Может будет кому полезным:
Вложения
Vector.zip
(21.82 Кб) Скачиваний: 44

Timoxa
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 11.01.2006 (Ср) 8:50

Сообщение Timoxa » 10.10.2006 (Вт) 13:35

Неужели нет больше вариантов ?

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 10.10.2006 (Вт) 14:14

добится такого же результата как в кореле будет очень непросто.

Timoxa
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 11.01.2006 (Ср) 8:50

Сообщение Timoxa » 11.10.2006 (Ср) 11:51

Спасибо, что сделал вывод....

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 12.10.2006 (Чт) 2:08

Timoxa
Поворачивай на здоровье :)
Код: Выделить всё
        NOption Explicit
Private Declare Function SelectObject _
        Lib "gdi32.dll" (ByVal hdc As Long, _
                         ByVal hObject As Long) As Long
Private Declare Function DeleteObject _
        Lib "gdi32.dll" (ByVal hObject As Long) As Long
Private Declare Function CreateFont _
        Lib "gdi32" _
        Alias "CreateFontA" (ByVal H As Long, _
                             ByVal w As Long, _
                             ByVal E As Long, _
                             ByVal O As Long, _
                             ByVal w As Long, _
                             ByVal i As Long, _
                             ByVal U As Long, _
                             ByVal S As Long, _
                             ByVal C As Long, ByVal OP As Long, ByVal CP As Long, ByVal Q As Long, ByVal PAF As Long, ByVal F As String) As Long
Private Const ANSI_CHARSET As Long = 0

Private Const FF_DONTCARE As Long = 0

Private Const CLIP_LH_ANGLES As Long = &H10

Private Const CLIP_DEFAULT_PRECIS As Long = 0

Private Const OUT_TT_ONLY_PRECIS As Long = 7

Private Const PROOF_QUALITY As Long = 2

Private Const TRUETYPE_FONTTYPE As Long = &H4

Private Const p_WIDTH As Long = 24

Private Const p_HEIGHT As Long = 48
Private Declare Function TextOut _
        Lib "gdi32.dll" _
        Alias "TextOutA" (ByVal hdc As Long, _
                          ByVal X As Long, _
                          ByVal Y As Long, _
                          ByVal lpString As String, _
                          ByVal nCount As Long) As Long
Private Sub Paint(Grad As Long)
Dim NewFont As Long, OldFont As Long
NewFont = CreateFont(p_HEIGHT, p_WIDTH, Grad, 0, FF_DONTCARE, 0, 0, 0, ANSI_CHARSET, OUT_TT_ONLY_PRECIS, CLIP_LH_ANGLES Or CLIP_DEFAULT_PRECIS, PROOF_QUALITY, TRUETYPE_FONTTYPE, "Courier New")
OldFont = SelectObject(pbDoc.hdc, NewFont)

TextOut pbDoc.hdc, 200, 200, "Tvoy text", Len("Tvoy text")

NewFont = SelectObject(pbDoc.hdc, OldFont)
DeleteObject NewFont
pbDoc.Cls

End Sub

Private Sub Form_Paint()
Dim i As Long
Do
For i = 0 To 3600 Step 10
    Paint (i)
    DoEvents
Next i
Loop
End Sub
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

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

Сообщение tyomitch » 12.10.2006 (Чт) 6:17

Matew, такой код и лежит по приведённой мной ссылке -- только в виде реюзабельного юзерконтрола.
Изображение


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

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

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

    TopList