Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 30.09.2006
Сообщений: 269

Как запретить юзеру жать на "Х" окна?

23.01.2007, 08:57. Показов 2063. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
зАРАНЕЕ СПАСИБО!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.01.2007, 08:57
Ответы с готовыми решениями:

Как запретить юзеру редактировать текст в комбобоксе?
Как запретить юзеру редактировать текст в комбобоксе. Чтобы он только выбирал из списка! Заранее спасибо!

Можно ли запретить юзеру возвращаться из окна (window.open) в родительское окно, пока не оно не будет закрыто?
У меня раньше был код, где открывалось окно (window.open). В этом окне при нажатии на кнопочку данные сабмитились в родительское окно. ...

Как запретить юзеру редактировать текст в комбобоксе
Здравствуйте! Как запретить юзеру редактировать текст в комбобоксе, чтобы он только выбирал из списка?

15
0 / 1 / 3
Регистрация: 27.03.2012
23.01.2007, 23:59
А что значит 'запретить'? Можно сделать так: либо вообще ее убрать (тогда строки заголовка тоже не будет) либо обрабатывать событие нажатия по-своему.
0
0 / 0 / 1
Регистрация: 30.09.2006
Сообщений: 269
24.01.2007, 01:01  [ТС]
Сделать типа enabled=false
0
0 / 1 / 3
Регистрация: 27.03.2012
24.01.2007, 01:27
Visual Basic
1
2
3
4
5
6
7
8
9
Private Declare Function GetSystemMenu Lib 'User32' (ByVal hWnd As Integer, ByVal bRevert As Integer) As Integer
Private Declare Function RemoveMenu Lib 'User32' (ByVal hMenu As Integer, ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer
Const MF_BYPOSITION = &H400
 
Private Sub MDIForm_Load()
    RemoveMenu GetSystemMenu(hWnd, 0), 6, MF_BYPOSITION ''Disable Close
    RemoveMenu GetSystemMenu(hWnd, 0), 4, MF_BYPOSITION ''Disable Maximize
    RemoveMenu GetSystemMenu(hWnd, 0), 3, MF_BYPOSITION ''Disable Minimize
End Sub
0
0 / 0 / 1
Регистрация: 30.09.2006
Сообщений: 269
24.01.2007, 23:07  [ТС]
Че то не работает вызов второй API!
0
0 / 0 / 0
Регистрация: 16.08.2006
Сообщений: 256
01.02.2007, 01:43
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
''Можно так (у меня это работает)
 
Private Declare Function DeleteMenu Lib 'user32' (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Declare Function GetSystemMenu Lib 'user32' (ByVal hwnd As Long, ByVal bRevert As Long) As Long
 
Private Const MF_BYPOSITION = &H400&
 
Private ReadyToClose As Boolean
Private Sub RemoveMenus(frm As Form, _
remove_restore As Boolean, _
remove_move As Boolean, _
remove_size As Boolean, _
remove_minimize As Boolean, _
remove_maximize As Boolean, _
remove_seperator As Boolean, _
remove_close As Boolean)
Dim hMenu As Long
 
'' Get the form''s system menu handle.
hMenu = GetSystemMenu(hwnd, False)
 
If remove_close Then DeleteMenu hMenu, 6, MF_BYPOSITION
If remove_seperator Then DeleteMenu hMenu, 5, MF_BYPOSITION
If remove_maximize Then DeleteMenu hMenu, 4, MF_BYPOSITION
If remove_minimize Then DeleteMenu hMenu, 3, MF_BYPOSITION
If remove_size Then DeleteMenu hMenu, 2, MF_BYPOSITION
If remove_move Then DeleteMenu hMenu, 1, MF_BYPOSITION
If remove_restore Then DeleteMenu hMenu, 0, MF_BYPOSITION
End Sub
 
Private Sub cmdClose_Click()
ReadyToClose = True
Unload Me
End Sub
 
Private Sub Form_Load()
'' Remove the Close system menu item and the
'' menu separator.
RemoveMenus Me, False, False, _
False, False, False, True, True
End Sub
 
'' Cancel if ReadyToClose is false.
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Cancel = Not ReadyToClose
End Sub
А вот второй вариант:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Declare Function GetSystemMenu Lib 'user32' (ByVal hwnd As Long, ByVal bRevert As Long) As Long
 
Declare Function GetMenuItemCount Lib 'user32' (ByVal hMenu As Long) As Long
 
Declare Function DrawMenuBar Lib 'user32' (ByVal hwnd As Long) As Long
 
Declare Function RemoveMenu Lib 'user32' (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
 
Public Const MF_BYPOSITION = &H400&
Public Const MF_REMOVE = &H1000&
 
Private Sub Form_Load()
 
Dim hSysMenu As Long
Dim nCnt As Long
 
'' Show the form
Me.Show
 
'' Get handle to our form''s system menu (Restore, Maximize, Move, close etc.)
hSysMenu = GetSystemMenu(Me.hwnd, False)
 
If hSysMenu Then
'' Get System menu''s menu count
nCnt = GetMenuItemCount(hSysMenu)
If nCnt Then
'' Menu count is based on 0 (0, 1, 2, 3...)
RemoveMenu hSysMenu, nCnt - 1, MF_BYPOSITION Or MF_REMOVE
RemoveMenu hSysMenu, nCnt - 2, MF_BYPOSITION Or MF_REMOVE 
'' Remove the seperator
DrawMenuBar Me.hwnd 
'' Force caption bar''s refresh. Disabling X button
Me.Caption = 'Try to close me!'
End If
End If
 
End Sub
0
Ghost
05.02.2007, 16:09
Оторвать руки
asd
05.02.2007, 16:15
> Оторвать руки

П-п-почему?
Mavr
07.02.2007, 11:49
Народ все пороще. На UnLoad вешаешь такой обработчик и все:
Visual Basic
1
2
3
4
5
6
7
8
9
10
Dim f as boolean
 
Private Sub btExit_Click()
  f = True
  Unload Me
End Sub
 
Private Sub Form_Unload(Cancel As Integer)
  If Not f Then Cancel = True
End Sub
Где f - это флаг, который надо взводить, если например, была нажата кнопка Выход, которую ты создал для выхода из твоей формы.
0 / 0 / 0
Регистрация: 16.08.2006
Сообщений: 256
10.02.2007, 20:00
Это не дает визуального изображения неработающей кнопки 'Х'
0
Mavr
11.02.2007, 05:55
Вопрос же был как запретить нажимать, на кнопку, значит эта кнопка визуально доступна, если 'X' визуально не доступна, то и нажать на нее нельзя.
0 / 0 / 0
Регистрация: 11.02.2007
Сообщений: 5
11.02.2007, 22:21
Есть более луший вариант запрета.
Использовав событие QueryUnload можно определить как окно пытаются закрыть.
0
0 / 0 / 0
Регистрация: 16.08.2006
Сообщений: 256
12.02.2007, 08:18
Да я не имел в виду, что кнопку 'Х' скрыть. Просто в моих двух примерах кнопка получается в таком виде, как обычная кнопка с картинкой крестика, у которой Enabled = False.
0
bondarevd
17.04.2007, 18:25
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode <> vbFormCode Then Cancel = True
End Sub
Pistol
23.04.2007, 18:19
Add this code to a Module:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Option Explicit
Private Declare Function GetSystemMenu Lib 'user32' Alias _
        'GetSystemMenu' (ByVal hwnd As Long, ByVal bRevert As Long) _
        As Long
Private Declare Function RemoveMenu Lib 'user32' Alias 'RemoveMenu' _
        (ByVal hMenu As Long, ByVal nPosition As Long, _
        ByVal wFlags As Long) As Long
Private Const MF_BYPOSITION = &H400&
 
Public Sub RemoveCloseMenu(frm As Form)
    Dim hSysMenu As Long
    ' Get the system menu for the form
    hSysMenu = GetSystemMenu(frm.hwnd, 0)
    ' Remove the close item
    Call RemoveMenu(hSysMenu, 6, MF_BYPOSITION)
    ' and the seperator
    Call RemoveMenu(hSysMenu, 5, MF_BYPOSITION)
End Sub
To use the code add this line to fx. the Form_Load event:
Visual Basic
1
   RemoveCloseMenu Me
.. Which will remove the closebutton from the titlebar and the system menu. Easy isn't it?
0 / 0 / 0
Регистрация: 20.10.2006
Сообщений: 13
27.04.2007, 04:42
Мне нравится, как вы тут API применяете, когда они тут ваще не нужны. :-)
Visual Basic
1
2
3
FormName_QueryUnload(....)
Cancel = True
...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.04.2007, 04:42
Помогаю со студенческими работами здесь

Как запретить определённому юзеру посещать Ваш сайт?
Как же всё же запретить определённому юзеру посещать Ваш сайт? Кукисы - сразу отпадают, удаляй - и ты снова на сайте! IP -отпадает, он...

Как изменить положение всплывающего окна в этом скрипте? Помогите юзеру!
Помогите, пожалуйста юзеру! Есть скрипт: &lt;Script Language='JavaScript'&gt; Artel=window.open('068.htm','Artel', 'Width=170,...

Запретить юзеру ползать по сайту в .htaccess
Как сделать чтобы когда юзер переходил на несуществующую страницу или на ту которая не прописана в .htaccess ему выводилось сообщение об...

Нельзя ли юзеру запретить т.е дать работать только в одном окне?
Нельзя ли юзеру запретить т.е дать работать только в одном окне. Пр: пользователь ввел свой пароль и вошел на сервер, и в другом окне...

Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна"
Что происходит при нажатии этой кнопки в плане сообщениий, и как их перехватить и игнорировать,что бы окно не сворачивалось? Чем это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru