PDA

View Full Version : سوال: حالت On Top Form



Netsky
شنبه 15 فروردین 1388, 08:57 صبح
سلام دوستان . هرچی گشتم چیزی پیدا نکردم . میخاستم یک سورس در مورد اینکه چه طوری یه فرم رو آن تاپ کنیم ( مثل تسک منیجر که زیر پنجره های دیگه نمیره ) . با تشکر .

parselearn
شنبه 15 فروردین 1388, 09:34 صبح
http://barnamenevis.org/forum/showthread.php?t=147165&highlight=top&page=2

butterfly8528
یک شنبه 16 فروردین 1388, 00:32 صبح
Option Explicit

Const SWP_NOMOVE = 2
Const SWP_NOSIZE = 1
Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
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 Function SetTopMostWindow(hwnd As Long, Topmost As Boolean) _
As Long
If Topmost = True Then 'Make the window topmost
SetTopMostWindow = SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)
Else
SetTopMostWindow = SetWindowPos(hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS)
SetTopMostWindow = False
End If
End Function

Private Sub Form_Load()
Dim lR As Long
lR = SetTopMostWindow(Form1.hwnd, True)
'For inactive always on top Properties : lR = SetTopMostWindow(Form1.hwnd, False)
End Sub


موفق باشی

xxxxx_xxxxx
یک شنبه 16 فروردین 1388, 06:25 صبح
سلام


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 Sub Command1_Click()
SetWindowPos Me.hwnd, -1, 0, 0, 0, 0, 3
End Sub

بجاي Me.hwnd مي تونيد هندل پنجره موردنظر روهم قرار بديد
عدد 3، مي تونه 2 و 1 هم باشه. روي پنجره هاي مختلف امتحان كنيد و تفاوتش رو ببينيد.
موفق باشيد/

lordarma
یک شنبه 04 بهمن 1388, 09:58 صبح
دوستان اگر ممکنه نمونه کدی برایم قرار بدهید تا با آن کد بتوان به برنامه های دلخواه (مانند مدیا پلیر، یاهو مسنجر، فتوشاپ و...) خاصیت Always On Top داد.
البته توجه کنید من این خاصیت را در هنگام اجرا برنامه می خواهم، در واقع لزومی نیست که این خاصیت پس از بستن برنامه هم باقی بماند...
آیا عملا امکان نوشتن همچین کدی با VB6 وجود دارد؟
با تشکر قبلی از شما بزرگواران


پی نوشت: امیدوارم از نوشته بالا اینطور برداشت نشود که من می خواهم برنامه ای را که خودم نوشتم On Top کنم! ، هدف On Top کردن برنامه هایی است که سورس شان در دسترس نیست...

xxxxx_xxxxx
یک شنبه 04 بهمن 1388, 16:06 عصر
امیدوارم از نوشته بالا اینطور برداشت نشود که من می خواهم برنامه ای را که خودم نوشتم On Top کنم! ، هدف On Top کردن برنامه هایی است که سورس شان در دسترس نیست...
در تاپیک قبلی (http://barnamenevis.org/forum/showthread.php?t=201560) من منظور شما رو متوجه شدم.
شما برای این کار باید ابتدا handle پنجره موردنظرتون (مانند مدیا پلیر، یاهو مسنجر، فتوشاپ و...) رو بدست بیارید. برای این کار از توابع مختلفی مثل FindWindow می تونید استفاده کنید. بعد از این که handle پنجره رو بدست آوردید با تابع SetWindowPos به روشی که در پست شماره چهار امده استفاده کنید و بجای Me.hwnd باید handle اون پنجره رو قرار بدید.

موفق باشید/