Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
Bankir
-
- Начинающий
-
-
- Сообщения: 3
- Зарегистрирован: 21.12.2005 (Ср) 20:37
Bankir » 17.01.2006 (Вт) 14:04
Хотелось бы знать каким образом в стандартной форме (Form) из кода можно изменить такие свойства как Caption="" ControlBox=True\False все только для того чтобы в программе скрывать верхнюю часть формы допустим по нажатию кнопки (там где иконка её caption и кнопки свернуть, развернуть, закрыть - Просто не помню как ето все одним словом завется)
короче скрывать и отображать Title формы, вот!
-
Amed
-
- Алфизик
-
-
- Сообщения: 5346
- Зарегистрирован: 09.03.2003 (Вс) 9:26
-
Amed » 17.01.2006 (Вт) 14:24
Form.BorderStyle = 0
-
Konst_One
-
- Член-корреспондент академии VBStreets
-
-
- Сообщения: 3041
- Зарегистрирован: 09.04.2004 (Пт) 13:47
- Откуда: Химки
-
Konst_One » 17.01.2006 (Вт) 14:48
из кода так нельзя, придется юзать API
-
GSerg
-
- Шаман
-
-
- Сообщения: 14286
- Зарегистрирован: 14.12.2002 (Сб) 5:25
- Откуда: Магадан
GSerg » 17.01.2006 (Вт) 14:57
- Код: Выделить всё
Option Explicit
Private Declare Function CreateRectRgn Lib "gdi32.dll" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function SetWindowRgn Lib "user32.dll" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Long) As Long
Private Declare Function GetSystemMetrics Lib "user32.dll" (ByVal nIndex As Long) As Long
Private Declare Function GetWindowRect Lib "user32.dll" (ByVal hwnd As Long, ByRef lpRect As RECT) As Long
Private Declare Function MapWindowPoints Lib "user32.dll" (ByVal hwndFrom As Long, ByVal hwndTo As Long, ByRef lppt As Any, ByVal cPoints As Long) As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Const SM_CYCAPTION As Long = 4
Private Const SM_CXEDGE As Long = 45
Private Const SM_CYEDGE As Long = 46
Private Sub Command1_Click()
Static f As Boolean
Dim r As RECT
If f Then
SetWindowRgn Me.hwnd, 0, 1
Else
GetWindowRect Me.hwnd, r
MapWindowPoints 0, Me.hwnd, r, 2
SetWindowRgn Me.hwnd, CreateRectRgn(0, GetSystemMetrics(SM_CYCAPTION) + GetSystemMetrics(SM_CYEDGE) + 1, r.Right + GetSystemMetrics(SM_CXEDGE) * 2, r.Bottom - r.Top + GetSystemMetrics(SM_CYEDGE)), 1
End If
f = Not f
End Sub
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас
-
Amed
-
- Алфизик
-
-
- Сообщения: 5346
- Зарегистрирован: 09.03.2003 (Вс) 9:26
-
Amed » 17.01.2006 (Вт) 14:59
Точно. Невнимательность, стыдно.
-
Bankir
-
- Начинающий
-
-
- Сообщения: 3
- Зарегистрирован: 21.12.2005 (Ср) 20:37
Bankir » 17.01.2006 (Вт) 15:15
оно работает и так если вот так
Form1.BorderStyle = 0
Form1.Caption = ""
но как сделать чтобы это было красиво то есть не стакой дергатней чтобы форма так не дергалась
чтото вроде
форма на весь экран Form1.WindowState = 0 и при етом исчезает Title
а по клику на форму Title отображается тоже без дерганий
приетом форма отображается поверх системной панели в момент когда Title скрыт а когда виден системная панель поверх формы
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 177