запретить закрытие чужого окна через "X"

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
al_gl
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 20.01.2004 (Вт) 10:53

запретить закрытие чужого окна через "X"

Сообщение al_gl » 16.03.2005 (Ср) 14:01

Как запретить в чужом окне выход через нажатие "X " ?

Т.е. как изменить парметры ControlBox чужого окна?

HWND этого окна известно (Можно найти).

skord
Китаец
Китаец
 
Сообщения: 572
Зарегистрирован: 14.10.2004 (Чт) 15:36
Откуда: Иркутск

Сообщение skord » 16.03.2005 (Ср) 17:16

al_gl


Код: Выделить всё
Option Explicit

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

Const MF_BYPOSITION = &H400&
Public Sub RemoveCloseMenu(frm As Form)
    Dim hSysMenu As Long
    hSysMenu = GetSystemMenu(frm.hwnd, 0)
    Call RemoveMenu(hSysMenu, 6, MF_BYPOSITION)
    Call RemoveMenu(hSysMenu, 5, MF_BYPOSITION)
End Sub

Private Sub Form_Load()
RemoveCloseMenu Me
End Sub

Private Sub Комманда1_Click()
Unload Me
End Sub


Это?

Odrick
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 503
Зарегистрирован: 28.09.2003 (Вс) 2:04

Сообщение Odrick » 16.03.2005 (Ср) 23:41

В чужом окне или программе? Если в программе, то hWnd еще нужно найти. Хотя бы с помощью FindWindow и FindWindowEx. А уж потом можно играться с SystemMenu...
То, что для одних константа, для других только переменная...

al_gl
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 20.01.2004 (Вт) 10:53

Сообщение al_gl » 17.03.2005 (Чт) 9:25

Odrick писал(а):В чужом окне или программе? Если в программе, то hWnd еще нужно найти. Хотя бы с помощью FindWindow и FindWindowEx. А уж потом можно играться с SystemMenu...


Закрыть надо было в чужой программе.

Всё получилось - код, предоставленный skord - помог решить проблему.

skord
Китаец
Китаец
 
Сообщения: 572
Зарегистрирован: 14.10.2004 (Чт) 15:36
Откуда: Иркутск

Сообщение skord » 17.03.2005 (Чт) 9:58

Всегда рад помочь 8) :lol: :D


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

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

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

    TopList