بمب منطقی
پنج شنبه 16 مهر 1383, 21:29 عصر
سلام بر دوستان خوب قدیمی.
یه سوال پیش و پا افتاده داشتم:
من توسط این کد میتونم یه پنجره رو Always on top کنم. ولی این کد میتونه اون پنجره رو بر بالای تمام پنجره های داخل Desktop ویندوز قرار بده ولی من میخوام پنجره مربوطه ام رو (که خودشم یکی از childهای MDIForm برنامست) فقط بر بالای تمام پنجره های Child داخل برنامم قرار بدم نه بالای تمام پنجره های باز شده در ویندوز.
کد مربوطه:
Private Const HWND_BOTTOM = 1
Private Const HWND_NOTOPMOST = -2
Private Const HWND_TOP = 0
Private Const HWND_TOPMOST = -1
Private Const SWP_FRAMECHANGED = &H20
Private Const SWP_DRAWFRAME = SWP_FRAMECHANGED
Private Const SWP_HIDEWINDOW = &H80
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_NOCOPYBITS = &H100
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOREDRAW = &H8
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOZORDER = &H4
Private 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()
SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 10, 300, 100, SWP_SHOWWINDOW
End Sub
پیشاپیش از همه شما ممنونم. :flower:
یه سوال پیش و پا افتاده داشتم:
من توسط این کد میتونم یه پنجره رو Always on top کنم. ولی این کد میتونه اون پنجره رو بر بالای تمام پنجره های داخل Desktop ویندوز قرار بده ولی من میخوام پنجره مربوطه ام رو (که خودشم یکی از childهای MDIForm برنامست) فقط بر بالای تمام پنجره های Child داخل برنامم قرار بدم نه بالای تمام پنجره های باز شده در ویندوز.
کد مربوطه:
Private Const HWND_BOTTOM = 1
Private Const HWND_NOTOPMOST = -2
Private Const HWND_TOP = 0
Private Const HWND_TOPMOST = -1
Private Const SWP_FRAMECHANGED = &H20
Private Const SWP_DRAWFRAME = SWP_FRAMECHANGED
Private Const SWP_HIDEWINDOW = &H80
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_NOCOPYBITS = &H100
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOREDRAW = &H8
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOZORDER = &H4
Private 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()
SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 10, 300, 100, SWP_SHOWWINDOW
End Sub
پیشاپیش از همه شما ممنونم. :flower: