Visual Basic 6. Руководство разработчика

анирацетам отзывы

Размещение одного окна поверх других - часть 2


Программа 13.9. Приложение WinTop

Option Explicit

 

Private Declare Function SetWindowPos Lib "user32" _

(ByVal hwnd As Long, ByVal hWndInsertAfter As Long,_

ByVal x As Long, ByVal у As Long,

ByVal ex As Long, ByVal cy As Long,

ByVal wFlags As Long) As Long

 

Const HWND_TOPMOST = -1

Const SWP_SHOWWINDOW = &H40

 

Private Sub Form_Load()

Dim retValue As Long

 

retValue = SetWindowPos(Me.hwnd, HWND_TOPMOST,_

Me.CurrentX, Me.CurrentY, 300, 300, SWP_SHOWWINDOW)

End Sub      

Эту методику можно использовать для создания окна

Search & Replace (Поиск и замена) в проекте RTFPad (см. гл.9). При этом данное окно будет оставаться расположенным поверх других окон и видимым при переходе в окно формы редактора (рис. 13.7). Для этого вставьте объявление функции SetWmdowPos() и пару констант в модуль

Public Declare Function SetWindowPos Lib "user32" _

(ByVal HWND As Long, ByVal hWndInsertAfter As Long,_

ByVal x As Long, ByVal у As Long, ByVal ex As Long, _

ByVal cy As Long, ByVal wFlags As Long) As Long

Public Const HWND_TOPMOST = -1

Public Const SWP SHOWWINDOW = &H40

Рис. 13.7. Диалоговое окно Search & Replace (Поиск и замена) видимо даже в том случае, когда активным становится другое окно

Кроме того, потребуется изменить программу обработчика события команды меню Find (Найти). Строку

SearchForm Show

замените следующим оператором:

SetWindowPos SearchForm.hwnd, HWND_TOPMOST, _

Me.CurrentX, Me.CurrentY, 470, 155, SWP_SHOWWINDOW

Значения 470 и 155, указанные в программе, являются размерами окна Search & Replace в пикселях. Значение свойства BorderStyle формы Search должно быть установлено в Fixed, тогда пользователь не сможет изменить размер окна.




Начало  Назад  Вперед