Как выключить крестик в окне!!

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 20.04.2004 (Вт) 11:06

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

Doctor Nestor
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 79
Зарегистрирован: 09.04.2004 (Пт) 12:02
Откуда: R-n-D

Сообщение Doctor Nestor » 20.04.2004 (Вт) 11:22

Короче есть у формы свойство - BorderStyle ставь его - none
креста вообще не будет.
Noname - это самый популярный брэнд.

Doctor Nestor
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 79
Зарегистрирован: 09.04.2004 (Пт) 12:02
Откуда: R-n-D

Сообщение Doctor Nestor » 20.04.2004 (Вт) 11:24

Или Form1.ControllBox = false
Noname - это самый популярный брэнд.

Doctor Nestor
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 79
Зарегистрирован: 09.04.2004 (Пт) 12:02
Откуда: R-n-D

Сообщение Doctor Nestor » 20.04.2004 (Вт) 11:25

ну ControlBox вообще-то
Noname - это самый популярный брэнд.

_Vasya
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 28.02.2004 (Сб) 21:21

Сообщение _Vasya » 20.04.2004 (Вт) 12:55

Код: Выделить всё
Const MF_BYPOSITION = &H400
Const MF_REMOVE = &H1000

Потом объявление функций:

Код: Выделить всё
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long

Теперь сама процедура:

Код: Выделить всё
Public Sub Disable_Close(Form_hWnd As Long)
Dim Menu_hWnd, Number_Of_MenuItems As Long 'Декларируем переменных
Menu_hWnd = GetSystemMenu(Form_hWnd, 0) 'Получения описателя системного меню
If Menu_hWnd Then 'Если получилось получить описатель системного меню, то выполнять код
Number_Of_MenuItems = GetMenuItemCount(Menu_hWnd) 'Получение количества пунктов меню
Call RemoveMenu(Menu_hWnd, Number_Of_MenuItems - 1, MF_BYPOSITION) 'Удаление меню Закрыть
Call RemoveMenu(Menu_hWnd, Number_Of_MenuItems - 2, MF_REMOVE)
Call DrawMenuBar(Form_hWnd) 'Перерисовка системного меню
End If 'Если не получилось получить описатель системного меню, то ничего не происходит
End Sub

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 20.04.2004 (Вт) 21:05

Если выставить свойство ControlBox на форме в False, то кнопки Minimize и Maximize тоже исчезнут. Предположим, что Вы хотите тем не менее давать возможность юзеру использовать кнопки Minimize и Maximize, но при этом чтобы он не мог закрыть форму кнопкой с крестиком. Добавьте следующий код в событие Query_Unload:

' если у Вас VB3, раскомментируйте следующую строку
' Const vbFormControlMenu = 0
Private Sub Form_QueryUnload(Cancel As _
Integer, UnloadMode As Integer)
If UnloadMode = vbFormControl_
Menu Then
Cancel = True
End If
End Sub

Вот и все!
и ни каких грамоздких кодов!
:D

Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Сообщение Max! » 21.04.2004 (Ср) 16:01

corgi
поиском пользуемся атакже не забываем что кроме форума есть еще и сайт с исходниками

С таким-же хуком можно и в винде на папках и других прогах крестик снемать!!! :wink:
Max!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 3

    TopList