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

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

23.01.2007, 08:57. Показов 2047. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru