PDA

View Full Version : فرم بالاتر از همه فرم ها



aleas2
دوشنبه 29 اردیبهشت 1393, 13:24 عصر
سلام خسته نباشید دوستان توسط کد زیر فرم بالاتر از همه فرم ها قرار میگیره


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_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
Private Sub Form_Load()
SetWindowPos hwnd, _
HWND_TOPMOST, 0, 0, 0, 0, _
SWP_NOMOVE + SWP_NOSIZE
End Sub



ولی در با این حال بعضی وقتا میشه که msgbox های مربوط به ویندوز یا مرورگر یا بطور مثال وقتی روی منوی start ویندوز کلیک پنجره srart بر روی پنجره فرم قرار میگیره
چطور میشه کاری کرد که پنجره فرم تحت هر شرایطی بالاتر از همه فرم ها پنجره قرار بگیره؟

setroyd
دوشنبه 29 اردیبهشت 1393, 13:26 عصر
نمیشه چون بعضی فرم ها on top هستند مثل برای شما برای همین فوکوس رو هر کدوم بشه اون بالاتره مثل task manager و.......

aleas2
دوشنبه 29 اردیبهشت 1393, 13:40 عصر
خب با این حال هیچ راه حلی وجود نداره؟که مثلا یه تایمر قرار داد که فوکوس بده به فرم برنامه؟

setroyd
دوشنبه 29 اردیبهشت 1393, 15:09 عصر
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_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
Private Sub Timer1_Timer()
SetWindowPos hwnd, _
HWND_TOPMOST, 0, 0, 0, 0, _
SWP_NOMOVE + SWP_NOSIZE
End Sub




این کار اصولی نیست ولی کارتو راه میندازه