Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как избавить форму от кнопки закрытия?

266
30 декабря 2003 года
mhaturov
901 / / 23.10.2003
Задча следующая:
Есть форма, которую нужно показывать в режиме Sizable, но при этом пользователю не должна быть доступна кнопка выгрузки формы (самая правая кнопка с крестиком в верху окна). Если для всех кнопок этой серии проблем с отключением нет, то для этой я ничего не могу найти. Она отсутствует только при BorderStyle = No, но это мне никак не подходит. Чем это лечить, кто-нибудь знает? Пишу на VB6.
258
30 декабря 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by mhaturov
Задча следующая:
Есть форма, которую нужно показывать в режиме Sizable, но при этом пользователю не должна быть доступна кнопка выгрузки формы (самая правая кнопка с крестиком в верху окна). Если для всех кнопок этой серии проблем с отключением нет, то для этой я ничего не могу найти. Она отсутствует только при BorderStyle = No, но это мне никак не подходит. Чем это лечить, кто-нибудь знает? Пишу на VB6.



Ой, склероз, как это делается где-то я видел, меняется то ли стиль окна, то ли еще как до этих кнопок добираются
а тебе надо обязательно оставить остальные кнопки и скрыть только с крестом?

258
30 декабря 2003 года
SergeySV
1.5K / / 19.03.2003
О, кажись нашел, че-то меня заклинило на SetWindowlong, а там через другую все это делается
258
30 декабря 2003 года
SergeySV
1.5K / / 19.03.2003
Вот как можно сделать кнопку закрытия Disable (серой):

Код:
Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, _
ByVal bRevert As Long) As Long
Private Declare Function EnableMenuItem Lib "user32" (ByVal hMenu As _
Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long

Const MF_GRAYED = &H1&
Const MF_BYCOMMAND = &H0&
Const SC_CLOSE = &HF060&

' получаем как-нибудь hWnd твоего окна

Public Function EnabCloseBut(boolClose As Boolean) as Boolean
Dim hWnd As Long
Dim wFlags As Long
Dim hMenu As Long

' получаем как-нибудь hWnd твоего окна
hWnd = Me.hWnd
hMenu = GetSystemMenu(hWnd, 0)
If Not boolClose Then
' делаем серой, недоступной
wFlags = MF_BYCOMMAND Or MF_GRAYED
Else
' возвр. обратно
wFlags = MF_BYCOMMAND And Not MF_GRAYED
End If
EnabCloseBut = EnableMenuItem(hMenu, SC_CLOSE, wFlags)

End Function

Если хочешь вообще скрыть кнопку, то передай тогда просто в EnableMenuItem(,,MF_BYCOMMAND) - кажись так должно, но ты еще проверь
258
30 декабря 2003 года
SergeySV
1.5K / / 19.03.2003
А, погодь, кажется там, если совсем удалить надо, то:

Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long


RemoveMenu(hMenu, SC_CLOSE, MF_BYCOMMAND)
266
30 декабря 2003 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by SergeySV
А, погодь, кажется там, если совсем удалить надо, то:

Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long


RemoveMenu(hMenu, SC_CLOSE, MF_BYCOMMAND)


Спасибо!
После праздников попробую!

2.2K
06 января 2004 года
USA-Lesh
50 / / 02.04.2003
А не проще в Unload ставить Cancel больше 0?
266
06 января 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by USA-Lesh
А не проще в Unload ставить Cancel больше 0?


А как потом форму выгружать?

2.2K
09 января 2004 года
USA-Lesh
50 / / 02.04.2003
Цитата:
Originally posted by mhaturov

А как потом форму выгружать?


Способов придумать можно миллион. Флаг ставить на выгрузку.

266
09 января 2004 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by USA-Lesh

Способов придумать можно миллион. Флаг ставить на выгрузку.


Это само собой, только вот должно же всё быть по-людски, тоесть красиво. Надо запретить пользователю выгружать форму, так пусть ему вообще лишняя кнопка глаза не мозолит, а то сразу же о разработчике у него плохое мнение возникнет.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог