Avatar billede angelenglen Nybegynder
17. marts 2004 - 14:11 Der er 17 kommentarer og
1 løsning

minimer form uden tittel-linie til systray

jeg har en form uden tittel-linie...

dvs der er ingen caption eller noget i den bar, der er kun selve formen synlig.

Jeg har så selv indsat et picture som når jeg trykker på det, skal minimere til system-tray...

men jeg kan ikke få det til at virke.. jeg har kigget på flere andre poster her på eksperten, men jeg har ikke fundet noget jeg har kunnet få til at virke indtil nu.

nogen der kan hjælpe mig?
Avatar billede slo Nybegynder
17. marts 2004 - 14:19 #1
Prøv med:
Private Sub MinKnap_Click()
  MinForm.WindowState = 1
End Sub
Avatar billede thesurfer Nybegynder
17. marts 2004 - 14:25 #2
Det skal lige siges, at ".WindowState = 1" minimere formen til Taskbar/startlinien, og ikke SysTray (systemtray). SysTray er det område hvor man kan kan se uret (hvis man vælger at vise det).
Avatar billede slo Nybegynder
17. marts 2004 - 14:30 #3
Ahh - sorry. Der var jeg for hurtig.
Avatar billede angelenglen Nybegynder
17. marts 2004 - 14:31 #4
ja, det skal desværre være systray, da jeg har disabled taskbar ikonet.. derfor lægger den sig som en underlig ting oven på desktop hvis jeg minimerer den ellers...
Avatar billede thesurfer Nybegynder
17. marts 2004 - 14:46 #6
Specielt den her:
http://www.pscode.com/vb/scripts/ShowCode.asp?txtCodeId=27491&lngWId=1

Den har fået en masse gode rating (24 ud af 30 har givet koden 5/5)
Avatar billede thesurfer Nybegynder
17. marts 2004 - 14:51 #8
Avatar billede angelenglen Nybegynder
17. marts 2004 - 15:21 #9
martin_moth: som sagt, har jeg prøvet en del fra eksperten, uden held.
den du linker til har jeg også prøvet, den minimerer til en underlig firkant på desktoppen.

thesurfer: Jeg prøver lige dit pscode.com link, vender tilbage engang imorgen om det virkede for mig :)
Avatar billede biohazard_666 Nybegynder
17. marts 2004 - 15:37 #10
Hejsa.. Her er en kode jeg bruger til at få et ikon ned i systray:

Private 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
Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2
Private Const WM_MOUSEMOVE = &H200
Private Const NIF_MESSAGE = &H1
Private Const NIF_ICON = &H2
Private Const NIF_TIP = &H4
Private Const WM_LBUTTONDBLCLK = &H203  'Double-click
Private Const WM_LBUTTONDOWN = &H201    'Button down
Private Const WM_LBUTTONUP = &H202      'Button up
Private Const WM_RBUTTONDBLCLK = &H206  'Double-click
Private Const WM_RBUTTONDOWN = &H204    'Button down
Private Const WM_RBUTTONUP = &H205      'Button up
Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
Dim nid As NOTIFYICONDATA

private sub form_load()

If App.PrevInstance = False Then
      nid.cbSize = Len(nid)
      nid.hwnd = Form1.hwnd 'Erstat med eget formnavn
      nid.uId = vbNull
      nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
      nid.uCallBackMessage = WM_MOUSEMOVE
      nid.hIcon = Form1.Icon 'Ikonet nede i systray
      nid.szTip = "hejsa" & vbNullChar 'tooltip teksten
      Shell_NotifyIcon NIM_ADD, nid
  End If
end sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Dim lMsg As Long
  Dim sFilter As String
  lMsg = X / Screen.TwipsPerPixelX
  Select Case lMsg
  'you can play with other events as I did as per your use
      Case WM_LBUTTONDOWN
      Case WM_LBUTTONUP
      Case WM_LBUTTONDBLCLK
      Form1.WindowState = vbNormal 'ændre form navn her
      Form1.Show 'ændre form navn her
      Case WM_RBUTTONDOWN
      Case WM_RBUTTONUP
      Case WM_RBUTTONDBLCLK
  End Select
  If Button = 2 Then
    'når der trykkes på højre knap
    'viser den menuen sound
    Call PopupMenu(popup) 'her skal du lave en menu. Den laver du i Tools --> Menueditor mener jeg :)
  End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
  'her fjerner vi lige ikonet i bunden...
  Shell_NotifyIcon NIM_DELETE, nid
  End
End Sub
Avatar billede thesurfer Nybegynder
17. marts 2004 - 15:41 #11
biohazard_666> i stedet for form-navne, og "ændre form navn her" osv, kan du bruge "me":


me.WindowState = ....
osv..
Avatar billede biohazard_666 Nybegynder
17. marts 2004 - 16:08 #12
nåå ja :)
Avatar billede biohazard_666 Nybegynder
17. marts 2004 - 18:00 #13
Hej igen, her er den nyeste kode:

Private 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
Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2
Private Const WM_MOUSEMOVE = &H200
Private Const NIF_MESSAGE = &H1
Private Const NIF_ICON = &H2
Private Const NIF_TIP = &H4
Private Const WM_LBUTTONDBLCLK = &H203  'Double-click
Private Const WM_LBUTTONDOWN = &H201    'Button down
Private Const WM_LBUTTONUP = &H202      'Button up
Private Const WM_RBUTTONDBLCLK = &H206  'Double-click
Private Const WM_RBUTTONDOWN = &H204    'Button down
Private Const WM_RBUTTONUP = &H205      'Button up
Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
Dim nid As NOTIFYICONDATA

private sub form_load()

If App.PrevInstance = False Then
      nid.cbSize = Len(nid)
      nid.hwnd = Me.hwnd 'Erstat med eget formnavn
      nid.uId = vbNull
      nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
      nid.uCallBackMessage = WM_MOUSEMOVE
      nid.hIcon = Me.Icon 'Ikonet nede i systray bliver hentet fra ens form
      nid.szTip = "hejsa" & vbNullChar 'tooltip teksten
      Shell_NotifyIcon NIM_ADD, nid
  End If
end sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Dim lMsg As Long
  Dim sFilter As String
  lMsg = X / Screen.TwipsPerPixelX
  Select Case lMsg
  'you can play with other events as I did as per your use
      Case WM_LBUTTONDOWN
      Case WM_LBUTTONUP
      Case WM_LBUTTONDBLCLK
      Me.WindowState = vbNormal
      Me.Show
      Case WM_RBUTTONDOWN
      Case WM_RBUTTONUP
      Case WM_RBUTTONDBLCLK
  End Select
  If Button = 2 Then
    'når der trykkes på højre knap
    'viser den menuen sound
    Call PopupMenu(popup) 'her skal du lave en menu. Den laver du i Tools --> Menueditor mener jeg :)
  End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
  'her fjerner vi lige ikonet i bunden når vi lukker programmet...
  Shell_NotifyIcon NIM_DELETE, nid
  End
End Sub



lige til at smide ind i et script :)

Bio
Avatar billede angelenglen Nybegynder
18. marts 2004 - 08:14 #14
well nu så jeg ikke biohazard_666's kode før jeg prøvede den fra theseurfer, og den virkede faktisk genialt.
( http://www.pscode.com/vb/scripts/ShowCode.asp?txtCodeId=27491&lngWId=1 )
Derfor har jeg tænkt mig at give mine 50 points til thesurfer, men eftersom biohazard_666's kode også indeholder dele jeg kan bruge, syntes jeg da at han skal have 25 points også :)

-så.. thesurfer, læg et svar for points :)
Avatar billede thesurfer Nybegynder
18. marts 2004 - 08:55 #15
OK, et svar er lagt :-)
Avatar billede thesurfer Nybegynder
08. juni 2004 - 15:27 #16
angelenglen> Hvis der er mere end 1 svar, der skal have points, man begge svar markeres. Dette gøres ved at holde CTRL knappen nede, og derefter klikke på svarene i boksen.

biohazard_666> Læg et svar på http://www.eksperten.dk/spm/507460
Avatar billede angelenglen Nybegynder
09. juni 2004 - 09:57 #17
i know, det var en fejl, læste bare igennem og kom til at trykke accepter inden jeg havde valgt det jeg ville.
Avatar billede biohazard_666 Nybegynder
09. juni 2004 - 12:45 #18
det går nok :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester