Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
JumpingJack
-
- Обычный пользователь
-
-
- Сообщения: 61
- Зарегистрирован: 25.01.2006 (Ср) 12:54
JumpingJack » 05.06.2006 (Пн) 15:27
Всем привет!
Хочу написать текст на прогрессбаре, делаю так, но не работает.. в чем может быть дело?
- Код: Выделить всё
Const DT_CENTER = &H1
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long
Private Declare Function SetRect Lib "user32" (lpRect As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
Private Sub Form_Paint()
Dim R As RECT
Dim hdc As Long
Dim hWnd As Long
SetRect R, pb.Left / Screen.TwipsPerPixelX, _
pb.Top / Screen.TwipsPerPixelY, _
pb.Width / Screen.TwipsPerPixelX, _
pb.Height / Screen.TwipsPerPixelY
hWnd = pb.hWnd
hdc = GetDC(hWnd)
DrawText hdc, "Test !", Len("Test !"), R, DT_CENTER
End Sub
-
keks-n
-
- Доктор VB наук
-
-
- Сообщения: 2509
- Зарегистрирован: 19.09.2005 (Пн) 17:17
- Откуда: г. Москва
-
keks-n » 05.06.2006 (Пн) 15:46
Если не ошибаюсь, то все параметры в структуре RECT задаются от верхнего левого угла DC, а не экрана... т. е. верхний девый угол-(0,0)
-
JumpingJack
-
- Обычный пользователь
-
-
- Сообщения: 61
- Зарегистрирован: 25.01.2006 (Ср) 12:54
JumpingJack » 05.06.2006 (Пн) 15:50
Так тоже не помогает..
- Код: Выделить всё
SetRect R, 0, 0, _
pb.Width / Screen.TwipsPerPixelX, _
pb.Height / Screen.TwipsPerPixelY
-
keks-n
-
- Доктор VB наук
-
-
- Сообщения: 2509
- Зарегистрирован: 19.09.2005 (Пн) 17:17
- Откуда: г. Москва
-
keks-n » 05.06.2006 (Пн) 15:51
Итого:
- Код: Выделить всё
Option Explicit
Const DT_CENTER = &H1
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
Private Sub Form_Click()
Me.ScaleMode = 3
Dim R As RECT
Dim hdc As Long
Dim hWnd As Long
R.Right = pb.Width
R.Bottom = pb.Height
hWnd = pb.hWnd
hdc = GetDC(hWnd)
DrawText hdc, "Test !", Len("Test !"), R, DT_CENTER
End Sub
З. Ы. В Form_Paint не работает, ибо прогрессбар рисуется отдельно.
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot и гости: 127