API-функция "окно поверх всех" - VB

Узнай цену своей работы

Формулировка задачи:

Всем доброго времени суток ! Подскажите пожалуйста , в чем может быть проблема : использую следующую API-функцию для отображения окна поверх всех : 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 И соответственно вызовы : Dim Res As Long Res = SetWindowPos(Frm.hWnd, HWND_TOPMOST, 0, 0, 0, 0, flags) Dim Res As Long Res = SetWindowPos(Frm.hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, flags) Под Win98 все работает прекрасно , но вот под Xp следующая проблема : в ран-тайме выдает ошибку 6 - Overflow (переполнение) , но после компиляции программы , при запуске Exe-файла все нормально. Подскажите , может быть кто сталкивался с такой проблемой ?

Решение задачи: «API-функция "окно поверх всех"»

textual
Листинг программы
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const SWP_SHOWWINDOW = &H40
Private Declare Sub 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)
 
Private Sub Form_Activate()
    'KPD-Team 1998
    'URL: [url]http://www.allapi.net/[/url]
    'E-Mail: [email]KPDTeam@Allapi.net[/email]
    'Set the window position to topmost
    SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.5 из 5
Похожие ответы