PDA

View Full Version : قراردادن فرم بالای Taskbar؟



vb2005
دوشنبه 13 اسفند 1386, 14:06 عصر
سلام دوستان چطورمیشه در هر کیفیت صفحه نمایش فرم رو بالای Taskbar قرارداد:متفکر:مثل منوی استارت ویندوز.

mpmsoft
دوشنبه 13 اسفند 1386, 14:56 عصر
منظورت اینه که می خوای فرمت Always On Top باشه
اگه منظورت اینه این کد رو می تونی استفاده کنی
http://planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=38475&lngWId=1

vb2005
سه شنبه 14 اسفند 1386, 04:06 صبح
منظورت اینه که می خوای فرمت Always On Top باشه
اگه منظورت اینه این کد رو می تونی استفاده کنی

نه دوست عزیز،منظورم اینه که یه فرم چسبیده به بالای سر تسکبار،مثل تصویرزیر:

parselearn
سه شنبه 14 اسفند 1386, 07:14 صبح
بدترین روش اینه که با کد زیر ارتفاع رو در بیاری



Screen.Height


سپس شرط بزاری. مثلا اگر 728 بود فرم رو در


Me.Top = Screen.Height - 100


قرار بده

و اگر 600 بود:


Me.Top = Screen.Height - 200

vb2005
سه شنبه 14 اسفند 1386, 12:30 عصر
ممنون،آیاراهی هست که برنامه های دیگه هم بالای سراین برنامه قراربگیرن؟مثلاًوقتی MyComuter اجرامیشه بره بالای سراین برنامه؟فرض کنید که این برنامه یک نوارهست مثل Taskbar ویندوز.

Mbt925
سه شنبه 14 اسفند 1386, 15:40 عصر
راهی که دوستمون گفتن ، همون طور که خودشون اشاره کردن بدترین روش برای این کاره.
یعنی استفاده کردن از عدد برای ارتفاع Taskbar.

یه روش برای بدست آوردن ارتفاع Taskbar وجود داره:





Private Const ABM_GETTASKBARPOS = &H5


Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type


Private Type APPBARDATA
cbSize As Long
hwnd As Long
uCallbackMessage As Long
uEdge As Long
rc As RECT
lParam As Long
End Type


Private Declare Function SHAppBarMessage Lib "shell32.dll" (ByVal dwMessage As Long, pData As APPBARDATA) As Long



Function GetTaskBarSize()
Dim ABD As APPBARDATA


SHAppBarMessage ABM_GETTASKBARPOS, ABD


MsgBox "Width:" & ABD.rc.Right - ABD.rc.Left
MsgBox " Height:" & ABD.rc.Bottom - ABD.rc.Top


End Sub



شما برای مدیریت کردن مکان پنجره هاتون کافیه با Left و Top شون کار کنید.

vb2005
چهارشنبه 15 اسفند 1386, 02:59 صبح
راهی که دوستمون گفتن ، همون طور که خودشون اشاره کردن بدترین روش برای این کاره.
یعنی استفاده کردن از عدد برای ارتفاع Taskbar.
یه روش برای بدست آوردن ارتفاع Taskbar وجود داره:
شما برای مدیریت کردن مکان پنجره هاتون کافیه با Left و Top شون کار کنید.


ممنونم دوست عزیز،حالاچطوربه برنامه های دیگه حالی کنم که باید بالای سر این پنجره قراربگیرن؟

parselearn
چهارشنبه 15 اسفند 1386, 06:16 صبح
ممنونم دوست عزیز،حالاچطوربه برنامه های دیگه حالی کنم که باید بالای سر این پنجره قراربگیرن؟

چندان در این زمینه تجربه ای ندارم
اما شاید با هندل گرفتم پنجره ها بشه

مثلا من کدی دارم که حتی پنجره های ویندوز را حالت شفاف میده

در این زمینه من نمیتونم کمکی کنم

Mbt925
چهارشنبه 15 اسفند 1386, 12:11 عصر
ممنونم دوست عزیز،حالاچطوربه برنامه های دیگه حالی کنم که باید بالای سر این پنجره قراربگیرن؟



Private Declare Function MoveWindow Lib "user32" (ByVal hWnd As _
Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, _
ByVal nHeight As Long, ByVal bRepaint As Long) As Long


اول باید هندل پنجره ی مورد نظر رو بدست بیارید ،
بعد از اون می تونید با استفاده از این تابع API پنجره ی موردنظر رو به مختصات موردنظرتون انتقال بدید.

vb2005
پنج شنبه 16 اسفند 1386, 15:16 عصر
اول باید هندل پنجره ی مورد نظر رو بدست بیارید ،
بعد از اون می تونید با استفاده از این تابع API پنجره ی موردنظر رو به مختصات موردنظرتون انتقال بدید.

اگه امکانش هست یه مثال هم بذارید،ممنون.

Mbt925
شنبه 18 اسفند 1386, 13:22 عصر
نمونه برای استفاده از تابع MoveWindow :

vb2005
شنبه 18 اسفند 1386, 18:42 عصر
ازلطفی که کردیدبسیارمتشکرم.