Kiran, if I understand you right, you need to retrieve the screen height and check whether the bottom of the gFilter grid you display with the following statement
gFilter.Move _
iGridCharacteristics.Left + (lLeft + 2) * Screen.TwipsPerPixelX, _
iGridCharacteristics.Top + (lTop + lHeight + 2) * Screen.TwipsPerPixelY, _
gFilter.Width, _
gFilter.Height
will be below the screen's bottom edge. If so, then you need to show the gFilter form above the current cell:
gFilter.Move _
iGridCharacteristics.Left + (lLeft + 2) * Screen.TwipsPerPixelX, _
iGridCharacteristics.Top + (lTop + 2) * Screen.TwipsPerPixelY - gFilter.Height, _
gFilter.Width, _
gFilter.Height
But note that the gFilter grid is limited by the boundaries of the form as it is a control on it.
To retrieve the screen resolution in VB6, you can use one of the techniques described in this StackOverflow thread:
How do I detect my display's resolution in VB6? Does all this help to solve your problem?