Keeping a window always at the bottom

I have an MDI application and a background form called frmBackground which I would like to be on the background at all times. My problem is: whenever I do Ctrl-Tab to move through the open windows of the app, only the window with focus is visible(which means is ahead of the background form). Every other form goes behind the background form and becomes invisible. How do I keep the background form at the bottom of the ZOrder at all times when I do Ctrl-Tab through the other forms?

Musleh
mfarid1Asked:
Who is Participating?
 
TheAnswerManCommented:
In every Form_Activate..

place this code

frmBackground.ZOrder Forms.Count - 2
0
 
gbarenCommented:
User the SetWindowPos() API with HWND_BOTTOM for second parameter. You'll need to call it every time you switch, though. I am not sure how HWND_DESKTOP works, try it.

Public Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (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
Public Const HWND_BOTTOM = 1
Public Const HWND_DESKTOP = 0
Public Const SWP_NOACTIVATE = &H10
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOREDRAW = &H8
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOZORDER = &H4


lReturn = SetWindowPos(form1.hWnd, HWND_DESKTOP, 0,0,0,0,SWP_NOMOVE+SWP_NOSIZE+SWP_NOREDRAW+SWP_NOZORDER+SWP_NOACTIVATE)

0
 
TheAnswerManCommented:
hmm actually.. just this..

frmBackground.ZOrder 1
0
 
gbarenCommented:
TAM,

What's the idea of locking the question? You should know better!

0
 
mfarid1Author Commented:
Thanks. The solution klugy but worked.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.