PDA

View Full Version : عوض کردن رویداد Minimize



r0ot$harp
شنبه 19 آبان 1386, 14:23 عصر
سلام بچه ها خوبید من می خوام بدونم چه جوری میشه کاری کرد که وقتی رو Minimize فورم کلیک کردیم آیکون برنامه در system tray قرار گیرد .
ممنون

ali_habibi1384
شنبه 19 آبان 1386, 16:11 عصر
system try? یعنی چه اتفاقی واسش بیوفته؟

r0ot$harp
شنبه 19 آبان 1386, 19:41 عصر
system try? یعنی چه اتفاقی واسش بیوفته؟

سلام ممنون از جوابتون

من می خوام وقتی رو minimize می زنه آیکونه برنامه بره کنار ساعت و فورم برنامه مخفی شه مانند Babylon

__siavash__
شنبه 19 آبان 1386, 20:26 عصر
یه تابع مثل این بنویس برای قرار دادن برنامه در Systray بعد تو رویداد Resize هم این کدو بذار
البته یه PictureBox به اسم Picture1 رو فرمت بذار که تصویرش قراره بره کنار ساعت !!!


'in module
Option Explicit
Public Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
Public Type NOTIFYICONDATA
cbSize As Long
hwnd As Long
uID As Long
uFlags As Long
uCallbackMessage As Long
hIcon As Long
szTip As String * 64
End Type
Public Const NIF_ICON = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIF_TIP = &H4
Public Const NIM_ADD = &H0
Public Const NIM_DELETE = &H2
Public Const NIM_MODIFY = &H1
Public Const LB_ITEMFROMPOINT = &H1A9
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_RBUTTONUP = &H205
Public IC As NOTIFYICONDATA




'in Form

Private Sub Form_Resize()
If Me.WindowState = vbMinimized Then
Call SysTray
Me.Hide
End If
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim Msg As Long
Msg = X / Screen.TwipsPerPixelX
Select Case Msg
Case WM_LBUTTONDOWN
Me.WindowState = vbNormal
Me.Show
Case WM_RBUTTONUP
'PopupMenu mnuFile
End Select
End Sub

Private Sub SysTray()
With IC
.cbSize = Len(IC)
.hwnd = Picture1.hwnd
.uID = 1&
.uFlags = NIF_MESSAGE Or NIF_ICON Or NIF_TIP
.uCallbackMessage = &H200
.hIcon = Picture1.Picture
.szTip = "This is a test " + vbNullChar
End With
Shell_NotifyIcon NIM_ADD, IC
End Sub

ali_habibi1384
شنبه 19 آبان 1386, 22:17 عصر
جوابت رو توی این تاپیک قبلا داده بودم:
http://barnamenevis.org/forum/showthread.php?t=83751&page=3
این یک مقداری از نیازت رو برطرف میکنه جزئیاتش با خودت.

Black_Strom
پنج شنبه 07 مهر 1390, 13:27 عصر
سلام
مشکل systray :
اینه که نمیشه tooltipe اون را آپدیت کرد مگر اینکه یکبار کامل اون را از tray خارج کنی و tooltip را تغییر بدی و سپس مجددا در systray قرار بدی که این خیلی مسخرست .