Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: как поставить окно выше всех? Добавлено: 28.08.05 00:11  

Автор вопроса:  Master Cheat'$
как поставить окно выше всех? не просто чтоб оно вылезло, а чтоб при выборе другого окна оно оставалось выше других и при этом "выбрано" было другое окно на которое кикнули? в некоторых прогах такое есть (плееры всякие, если поставить "выше всех окон" оно не слазит с монитора а при этом выбраны другие окна) и не методикой "через каждую секунду Form1.SetFocus" или что то подобное, так оно "мелькает".

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 Alexander



Вопросов: 19
Ответов: 118
 Профиль | | #1 Добавлено: 28.08.05 02:47
Attribute VB_Name = "MdlOnTop"
Private Declare Function SetWindowPos Lib "user32" (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
Private Const HWND_NOTOPMOST = -2
Private Const HWND_TOPMOST = -1
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1

Private Sub SetFormPosition(frmHandl As Long, TopPosition As Boolean)
If TopPosition Then
SetWindowPos frmHandl, HWND_TOPMOST, 0, 0, 0, 0, _
SWP_NOACTIVATE Or SWP_NOSIZE Or SWP_NOMOVE
Else
SetWindowPos frmHandl, HWND_NOTOPMOST, 0, 0, 0, 0, _
SWP_NOSIZE Or SWP_NOMOVE
End If
End Sub
 
Public Sub OnTop(Form)
SetFormPosition Form.hwnd, True
End Sub

Public Sub OffTop(Form)
SetFormPosition Form.hwnd, False
End Sub

модуль
и не про сет фокус, пойдет?

Ответить

Номер ответа: 2
Автор ответа:
 Master Cheat'$



Вопросов: 14
Ответов: 102
 Профиль | | #2 Добавлено: 28.08.05 03:24
класс, и кода оказывается мало надо, и работает отлично ))))
спасиб

Ответить

Номер ответа: 3
Автор ответа:
 Master Cheat'$



Вопросов: 14
Ответов: 102
 Профиль | | #3 Добавлено: 28.08.05 17:40
вот только одно "НО" заметил: когда остается только одно окно программы оно становится обычным, и после запуска других снова снизу. я этот глюк исправил. Конечно, может это только с той прогой в которую я засунул, но все таки...

Ответить

Номер ответа: 4
Автор ответа:
 Alexander



Вопросов: 19
Ответов: 118
 Профиль | | #4 Добавлено: 28.08.05 23:39
:-[======] как ты умудрился? никогда такого не видел с этим модулем, можеш поподробней что у тебя там в коде

Ответить

Номер ответа: 5
Автор ответа:
 Master Cheat'$



Вопросов: 14
Ответов: 102
 Профиль | | #5 Добавлено: 29.08.05 00:59
если ты запускал прям из бейсика то ниче не будет, а вот если запустить и закрыть все приложения, то другие формы смогут эту форму перекрыть (впрочем и окна других приложений тоже)
комп видимо думает что перекрывать нечем и отключает, и когда еще что-то запускается...

Ответить

Номер ответа: 6
Автор ответа:
 astoro



ICQ: 649109 

Вопросов: 31
Ответов: 391
 Профиль | | #6 Добавлено: 29.08.05 06:35
Окна находящиеся "выше всех" (TOPMOST) по отношению друк к друку ведут себя так же как и простые окна по отношению друк к друку

Ответить

Номер ответа: 7
Автор ответа:
 Master Cheat'$



Вопросов: 14
Ответов: 102
 Профиль | | #7 Добавлено: 30.08.05 00:50
их у меня в проге два, но они не могут перекрыть друг друга (ну нельзя их двигать!) и когда остается ток эта прога, они становятся обычными.
я воспользовался тем кодом что мне дали ранее ("как отобразить открытые приложения";) и когда приложений становится больше нуля (не считая проги) он ставит окна снова вверх. так я этот глюк исправил.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам