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

Кирилл

Команда форума
Администратор
Сообщения
13,827
Реакции
6,168
Баллы
913
На данный момент свойство этого параметра доступно лишь в настройках формы.
Пробовать что то вроде: me.ControlBox = False, конечно бесполезно...
Как то можно программно менять это свойство или как то еще ограничивать доступ пользователя к кнопками MaxButton/ MinButton при определенных условиях?
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,132
Реакции
5,907
Баллы
648
VB.NET:
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
 

Сергій

Разработчик
Сообщения
409
Реакции
220
Баллы
218
Form1.Enabled = False
Post automatically merged:

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

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

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

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

Но Dragocas ,как всегда, круче всех!
 
Последнее редактирование:

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,132
Реакции
5,907
Баллы
648
Этот проект - примерно то, что советует Сергей.
Если нравится, можешь глянуть, как у меня там реализовано.
111.png
 

Вложения

  • 837.3 KB Просмотры: 1

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,132
Реакции
5,907
Баллы
648
Там не Intel, а "Favor Pentium Pro".
То есть предпочтение при компиляции использования инструкций, которые появились в этом процессоре.
Если определённый код запустить на процессоре 80486 или более ранних Pentium с отмеченной галочкой, то он будет работать чуточку медленнее.
Соответственно, на всех новых процессорах код будет чуть более оптимизирован. Не имеет значения Intel или AMD.
 
Сверху Снизу