Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Форма поверх всех (on top) - не получается Добавлено: 09.01.07 18:40  

Автор вопроса:  »VladikComper« | Web-сайт: vladikcomper.narod.ru | ICQ: 419668582 
У меня есть главная форма, которая по команде меню вызывает форму поиска, нужно ее сделать поверх всех.

Я нашел код в Библиотеке кодов, а он не работает:

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    


Что делать? Выдает: Run-time Error '6' - Overflow в процедуре Command1! Где тут ошибка.

Ответить

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

Номер ответа: 1
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #1
Добавлено: 09.01.07 19:26
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_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1


Private Sub Command1_Click()
Call SetWindowPos(Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, flags) 'делаем поверх всех
End Sub
Private Sub Command2_Click()
Call SetWindowPos(Me.HWND, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS)
End Sub


По моему так.

Ответить

Номер ответа: 2
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #2
Добавлено: 09.01.07 19:32
Что делать? Выдает: Run-time Error '6' - Overflow в процедуре Command1! Где тут ошибка.
скорее всего вы объявили переменную res типа Integer, а не Long

Ответить

Номер ответа: 3
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 09.01.07 20:18
та библа жуть, был бы доступ - поправил :(

Ответить

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



ICQ: 401147850  

Вопросов: 7
Ответов: 16
 Профиль | | #4 Добавлено: 13.01.07 15:13
Лучше так:
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_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_SHOWWINDOW = &H40
Private Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE

Private Sub Form_Load()
Call SetWindowPos(Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)
End Sub

Ответить

Номер ответа: 5
Автор ответа:
 Bombardier



ICQ: 42305746 

Вопросов: 2
Ответов: 67
 Web-сайт: alexander.tsioka.ru
 Профиль | | #5
Добавлено: 16.01.07 16:28
сама функция должна декларироваться с возвращаемым значением типа Long а не Integer как у тебя

Ответить

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



Вопросов: 5
Ответов: 19
 Профиль | | #6 Добавлено: 25.01.07 02:01
у меня есть нужный тебе контрол. В инете откопал. Если надо пиши - вышлю на мыло

Ответить

Страница: 1 |

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



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