Поверх окна

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
13GHOST
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 305
Зарегистрирован: 09.01.2004 (Пт) 12:48

Поверх окна

Сообщение 13GHOST » 02.08.2006 (Ср) 13:35

Можно ли вывести окно чтобы оно всегда было поверх другого окна, зная его hwnd ? заранее спасибо

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 02.08.2006 (Ср) 13:42

HWND_TOPMOST? SetParent?
Изображение

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 02.08.2006 (Ср) 15:48

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

Declare Function SetWindowPos Lib "user32.dll" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Sub ToggleTop()
Dim flags As Long

flags = SWP_NOSIZE Or SWP_DRAWFRAME
SetWindowPos(Form1.hWnd, HWND_TOPMOST, 0, 0, 1, 1, flags)
End Sub

Ставишь процедуру ToggleTop в событие Form_Load()
#define ROFL 0xDDDD

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 02.08.2006 (Ср) 15:57

DirectXManiac, ты понимаешь, в чём разница между "поверх другого" и "поверх всех"?
Изображение

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 02.08.2006 (Ср) 16:05

Я делаю всегда так, а вообще SetParent...
#define ROFL 0xDDDD

13GHOST
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 305
Зарегистрирован: 09.01.2004 (Пт) 12:48

Сообщение 13GHOST » 02.08.2006 (Ср) 18:22

при использовании setparent эффект получается как "окно в окне" а мне надо как например при: form1.show ,me

Naked
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 27.10.2004 (Ср) 3:16
Откуда: Дальнегорск столица мира

Сообщение Naked » 03.08.2006 (Чт) 1:31

SetWindowLong hwnd1, GWL_HWNDPARENT, hwnd2

13GHOST
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 305
Зарегистрирован: 09.01.2004 (Пт) 12:48

Сообщение 13GHOST » 03.08.2006 (Чт) 6:18

это подходит.... большое спасибо :)

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 03.08.2006 (Чт) 16:16

Можно ещё и frmForm1.Show, me, vbModeless
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 03.08.2006 (Чт) 17:47

Можно ли вывести окно чтобы оно всегда было поверх другого окна, зная его hwnd ?

Автор топика явно указал, что есть только hWnd. О том что есть ссылка на форму, и что это вообще VB'шное окно не сказано ни слова.
Это во-первых. А во-вторых у нас тут не масмовский invoke, и замятую после Show ставить не надо.
Изображение


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 62

    TopList