VB 6 Как изменить свойство ControlBox программно?

Кирилл

Команда форума
Администратор
Ассоциация VN
Сообщения
14,069
Реакции
5,784
На данный момент свойство этого параметра доступно лишь в настройках формы.
Пробовать что то вроде: me.ControlBox = False, конечно бесполезно...
Как то можно программно менять это свойство или как то еще ограничивать доступ пользователя к кнопками MaxButton/ MinButton при определенных условиях?
 
VB.NET / VBA:
Option Explicit

Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Const WS_MINIMIZEBOX = &H20000
Const WS_MAXIMIZEBOX = &H10000
Const GWL_STYLE = -16

'Вкл/выкл "свернуть"
Private Sub Command1_Click()
    SetWindowLong Me.hwnd, GWL_STYLE, GetWindowLong(Me.hwnd, GWL_STYLE) Xor WS_MINIMIZEBOX
End Sub

'Вкл/выкл "на весь экран"
Private Sub Command2_Click()
    SetWindowLong Me.hwnd, GWL_STYLE, GetWindowLong(Me.hwnd, GWL_STYLE) Xor WS_MAXIMIZEBOX
End Sub
 
Form1.Enabled = False

Или как другой вариант:
в свойствах формы BorderStyle = 0
на форме создать массив из 3-х кнопок

Private Sub Command1_Click(Index As Integer)
Me.WindowState = Index
End Sub

так как кнопок 3: нулевая, первая и вторая, то и WindowState в результате нажатия соответственных кнопок будет: нормально, свернуто, развернуто.

И создать еще одну Command2.Caption = "x" для завершения работы приложения.

Но Dragocas ,как всегда, круче всех!
 
Последнее редактирование модератором:
Этот проект - примерно то, что советует Сергей.
Если нравится, можешь глянуть, как у меня там реализовано.
111.png
 

Вложения

  • src.rar
    837.3 KB · Просмотры: 1
Там не Intel, а "Favor Pentium Pro".
То есть предпочтение при компиляции использования инструкций, которые появились в этом процессоре.
Если определённый код запустить на процессоре 80486 или более ранних Pentium с отмеченной галочкой, то он будет работать чуточку медленнее.
Соответственно, на всех новых процессорах код будет чуть более оптимизирован. Не имеет значения Intel или AMD.
 
Назад
Сверху Снизу