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

Кирилл

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

Dragokas

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

Сергій

Активный пользователь
Сообщения
361
Симпатии
189
Баллы
123
#3
Form1.Enabled = False
Сообщения объединены:

Или как другой вариант:
в свойствах формы 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
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
5,914
Симпатии
5,757
Баллы
588
#4
Этот проект - примерно то, что советует Сергей.
Если нравится, можешь глянуть, как у меня там реализовано.
 

Вложения

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

Dragokas

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