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

-
-
- Сообщения: 22
- Зарегистрирован: 18.12.2005 (Вс) 9:26
-
Никитка Б » 22.11.2007 (Чт) 17:01
Всем доброго времени суток.
Имеется приложение. с Одной MDI формой, и другими дочерними окнами.
Вообщем то хочется сделать так чтобы одна из этих дочерних форм была 1. по верх всех остальных(SetWindowPos, на чтото ругается, видимо из-за того что она дочерняя и принадлежит MDI) , 2. чтобы только она была активной. тоесть приложене не должно влиять ни на что(кроме естественно самой MDI) активного дочернего окна.
-
Konst_One
-
- Член-корреспондент академии VBStreets

-

-
- Сообщения: 3041
- Зарегистрирован: 09.04.2004 (Пт) 13:47
- Откуда: Химки
-
Konst_One » 22.11.2007 (Чт) 18:21
тогда делай SDI-интерфейс. или как вариант клади на главное окно MDI PictureBox и используй его как контейнер для своего фонового окна, но оно всегда будет позади MDI-Child окошек.
-
EUGY
-
- Бывалый

-

-
- Сообщения: 214
- Зарегистрирован: 09.11.2006 (Чт) 22:51
- Откуда: Мурманск
EUGY » 22.11.2007 (Чт) 18:40
Перебором всех mdichild кроме выбранной установить их св-во Enabled=false.
И только одна единственная будет активной и поверх всех.
-
Saturn.65
-
- Постоялец

-

-
- Сообщения: 543
- Зарегистрирован: 13.10.2006 (Пт) 18:46
-
Saturn.65 » 22.11.2007 (Чт) 20:35
Не знаю как с дочерними, а с обычными окнами работает.
- Код: Выделить всё
Сделать вашу форм поверх всех
Добавьте 2 CommandButton (под именем Command1 и Command2). Когда вы нажимаете первую кнопку, ваша форма поверх всех
Private Declare Function SetWindowPos Lib "user32" (ByVal h%, ByVal hb%, ByVal x%, ByVal Y%, ByVal cx%, ByVal cy%, ByVal F%) As Integer
Const SWP_NOMOVE = 2
Const SWP_NOSIZE = 1
Const flags = SWP_NOMOVE Or SWP_NOSIZE
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Private Sub Command1_Click()
res = SetWindowPos(Form1.hwnd, HWND_TOPMOST, 0, 0, 0, 0, flags) 'Форма on-top
End Sub
Private Sub Command2_Click()
res = SetWindowPos(Form1.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, flags) 'Форма non-on-top
End Sub
-
burik
-
- Постоялец

-

-
- Сообщения: 514
- Зарегистрирован: 03.11.2005 (Чт) 22:04
- Откуда: Беларусь, Рогачев
-
burik » 23.11.2007 (Пт) 14:36
Saturn.65, автор же написал:
"..SetWindowPos, на чтото ругается.."
(см. выше)
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: Google-бот, SemrushBot, Yandex-бот и гости: 9