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

Кирилл

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

Dragokas

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

Сергій

Активный пользователь
Сообщения
380
Реакции
205
Баллы
213
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,011
Реакции
5,815
Баллы
648
Этот проект - примерно то, что советует Сергей.
Если нравится, можешь глянуть, как у меня там реализовано.
111.png
 

Вложения

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

Сергій

Активный пользователь
Сообщения
380
Реакции
205
Баллы
213
Dragocas ,как всегда, круче всех!
 

Dragokas

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