Results 1 to 7 of 7

Thread: Form always on top???

  1. #1

    Thread Starter
    Hyperactive Member
    Join Date
    Sep 1999
    Location
    Leeds, UK
    Posts
    287

    Post

    Hi,

    I have made a program that I would like to stay open above all the others. I have seen it done before, can anyone tell me how to do it? I also have another question, what will happen if two windows are open both set to always on top, Which stays on top???

    Thanks

  2. #2
    Guru Aaron Young's Avatar
    Join Date
    Jun 1999
    Location
    Red Wing, MN, USA
    Posts
    2,177

    Post

    Try:
    Code:
    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 SWP_NOSIZE = &H1
    Private Const SWP_NOMOVE = &H2
    Private Const HWND_TOPMOST = -1
    
    Private Sub Form_Load()
        Call SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE)
    End Sub
    ------------------
    Aaron Young
    Analyst Programmer
    [email protected]
    [email protected]


    [This message has been edited by Aaron Young (edited 12-10-1999).]

  3. #3

    Thread Starter
    Hyperactive Member
    Join Date
    Sep 1999
    Location
    Leeds, UK
    Posts
    287

    Post

    Great Thanks!

  4. #4
    Lively Member
    Join Date
    Nov 1999
    Posts
    65

    Post

    In A Module Put This Code, This Is A Whole Module Code From An App I Built Sorry Can't Remember which part is to stay on top but chuck it all in and it will work.


    code:

    Declare Function IsWindowEnabled Lib "user32" (ByVal hwnd As Long) As Long
    Declare Function EnableWindow Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long
    Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    Declare Function RedrawWindow Lib "user32" (ByVal hwnd As Long, lprcUpdate As Rect, ByVal hrgnUpdate As Long, ByVal fuRedraw As Long) As Long
    Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
    Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As Rect) As Long
    Declare Function SetRect Lib "user32" (lpRect As Rect, ByVal x1 As Long, ByVal Y1 As Long, ByVal x2 As Long, ByVal Y2 As Long) As Long
    Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
    Declare Function RegisterWindowMessage& Lib "user32" Alias "RegisterWindowMessageA" (ByVal lpString As String)
    Declare Function GetWindowLong& Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long)
    Declare Function EnumWindows& Lib "user32" (ByVal lpenumfunc As Long, ByVal lParam As Long)
    Declare Function SendMessageByNum& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
    Declare Function GetClassName& Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long)
    Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
    Declare Function ShellAbout Lib "shell32.dll" Alias "ShellAboutA" (ByVal hwnd As Long, ByVal szApp As String, ByVal szOtherStuff As String, ByVal hIcon As Long) As Long
    Declare Function getparent Lib "user32" Alias "GetParent" (ByVal hwnd As Long) As Long
    Declare Function findwindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Declare Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
    Declare Function sendmessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Declare Function CreatePopupMenu Lib "user32" () As Long
    Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
    Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
    Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
    Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
    Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
    Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
    Declare Function GetWindowtextlength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
    Declare Function GettopWindow Lib "user32" Alias "GetTopWindow" (ByVal hwnd As Long) As Long
    Declare Function setfocusapi Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long
    Declare Function GetMenuString Lib "user32" Alias "GetMenuStringA" (ByVal hMenu As Long, ByVal wIDItem As Long, ByVal lpString As String, ByVal nMaxCount As Long, ByVal wFlag As Long) As Long
    Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    Declare Function getwindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
    Declare Function InsertMenu Lib "user32" Alias "InsertMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As String) As Long
    Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As String) As Long
    Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
    Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
    Declare Function DestroyMenu Lib "user32" (ByVal hMenu%) As Integer
    Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) As Long
    Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Declare Function InvertRect Lib "user32" (ByVal hdc As Long, lpRect As Rect) As Long
    Declare Function SetWindowPos Lib "user32" (ByVal h%, ByVal hb%, ByVal x%, ByVal y%, ByVal cx%, ByVal cy%, ByVal f%) As Integer
    'You can add more Declares but this is most of the ones
    'needed

    Global Const SWP_NOMOVE = 2
    Global Const SWP_NOSIZE = 1
    Global Const Flags = SWP_NOMOVE Or SWP_NOSIZE
    Global Const HWND_TOPMOST = -1
    Global Const HWND_NOTOPMOST = -2
    Global Const KEY_SNAPSHOT = &H2C
    Global chatsendbutton%
    Global chattextbox%
    Global User$
    'Globals are like Dims but they store it throughout all the
    'project

    Public Const WM_CHAR = &H102
    Public Const WM_SETTEXT = &HC
    Public Const WM_USER = &H400
    Public Const WM_KEYDOWN = &H100
    Public Const WM_KEYUP = &H101
    Public Const WM_LBUTTONDOWN = &H201
    Public Const WM_LBUTTONUP = &H202
    Public Const WM_CLOSE = &H10
    Public Const WM_COMMAND = &H111
    Public Const WM_CLEAR = &H303
    Public Const WM_DESTROY = &H2
    Public Const wm_gettext = &HD
    Public Const WM_GETTEXTLENGTH = &HE
    Public Const WM_LBUTTONDBLCLK = &H203
    Public Const WM_RBUTTONDBLCLK = &H206
    Public Const WM_RBUTTONDOWN = &H204
    Public Const WM_RBUTTONUP = &H205

    Public Const BM_GETCHECK = &HF0
    Public Const BM_GETSTATE = &HF2
    Public Const BM_SETCHECK = &HF1
    Public Const BM_SETSTATE = &HF3

    Public Const LB_GETITEMDATA = &H199
    Public Const LB_GETCOUNT = &H18B
    Public Const LB_ADDSTRING = &H180
    Public Const LB_DELETESTRING = &H182
    Public Const LB_FINDSTRING = &H18F
    Public Const LB_FINDSTRINGEXACT = &H1A2
    Public Const LB_GETCURSEL = &H188
    Public Const LB_GETTEXT = &H189
    Public Const LB_GETTEXTLEN = &H18A
    Public Const LB_SELECTSTRING = &H18C
    Public Const LB_SETCOUNT = &H1A7
    Public Const LB_SETCURSEL = &H186
    Public Const LB_SETSEL = &H185
    Public Const LB_INSERTSTRING = &H181

    Public Const VK_HOME = &H24
    Public Const VK_RIGHT = &H27
    Public Const VK_CONTROL = &H11
    Public Const VK_DELETE = &H2E
    Public Const VK_DOWN = &H28
    Public Const VK_LEFT = &H25
    Public Const VK_RETURN = &HD
    Public Const VK_SPACE = &H20
    Public Const VK_TAB = &H9

    Public Const GW_CHILD = 5
    Public Const Gw_hwndFirst = 0
    Public Const gw_hwndlast = 1
    Public Const GW_HWNDNEXT = 2
    Public Const GW_HWNDPREV = 3
    Public Const GW_MAX = 5
    Public Const GW_OWNER = 4
    Public Const SW_MAXIMIZE = 3
    Public Const SW_MINIMIZE = 6
    Public Const SW_HIDE = 0
    Public Const SW_RESTORE = 9
    Public Const SW_SHOW = 5
    Public Const SW_SHOWDEFAULT = 10
    Public Const SW_SHOWMAXIMIZED = 3
    Public Const SW_SHOWMINIMIZED = 2
    Public Const SW_SHOWMINNOACTIVE = 7
    Public Const SW_SHOWNOACTIVATE = 4
    Public Const SW_SHOWNORMAL = 1

    Public Const MF_APPEND = &H100&
    Public Const MF_DELETE = &H200&
    Public Const MF_CHANGE = &H80&
    Public Const MF_ENABLED = &H0&
    Public Const MF_DISABLED = &H2&
    Public Const MF_REMOVE = &H1000&
    Public Const MF_POPUP = &H10&
    Public Const MF_STRING = &H0&
    Public Const MF_UNCHECKED = &H0&
    Public Const MF_CHECKED = &H8&
    Public Const MF_GRAYED = &H1&
    Public Const MF_BYPOSITION = &H400&
    Public Const MF_BYCOMMAND = &H0&
    Public Const MOUSE_MOVED = &H1

    Public Const GWW_HINSTANCE = (-6)
    Public

  5. #5
    Junior Member
    Join Date
    Jan 1999
    Posts
    26

    Post


  6. #6
    Lively Member benski's Avatar
    Join Date
    Sep 1999
    Location
    UK
    Posts
    126

    Post

    Insane Killa - hmmm interesting policy there - if in doubt, just declare as many API functions as you can think of

    Call me old-fashioned, but I'd suggest following Aaron's advice in this case...

  7. #7
    Hyperactive Member
    Join Date
    Jan 2000
    Posts
    355

    Post

    lol

    i think he just pasted half of win32api.txt into the box

    ------------------
    cintel rules
    www.cintelsoftware.co.uk

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width