Deutsch
Quelltexte/ Codesnippets

Eigene Hauptfenster Icon Programm Systray Tray

 

KompilierenMarkierenSeparieren
Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Hauptfenster: Tray-Icon für das eigene Programm im Systray ablegen
linke Maustaste: Auswahl
rechte Maustaste: Programmfenster zeigen bzw. Programm beenden
#######################
Thema : Tray-Icon
#######################
Andreas Miethe
August 2003
#######################
 $H windows.ph
 $H structs.ph
 $H messages.ph
 $H shellapi.ph
DEF &WM_SHELLNOTIFY  ~WM_USER + 5 shell notify message
DEF &uID 7777
Struct Point = ~Point
Struct Note  = ~NOTIFYICONDATA
Declare Point#,TB_CREATED&
Declare Ende&,Note#,Tip$
SetTrueColor 1
Window %maxx,0 - 640,480Fenster neben den Bildschirm
CLS ~GetSysColor(~COLOR_BTNFACE)
~ShowWindow(%hwnd,~SW_HIDE)Fenster verbergen
~SetWindowPos(%hwnd,0,0,0,640,480,OR(~SWP_NOREDRAW,~SWP_NOACTIVATE))neue Position
Dim Note#,Note
Clear Note#
Note#.cbSize&           = sizeof(Note#)
Note#.hWnd&             = %hwnd
Note#.uID&              = &uID
Note#.hIcon&            = ~LoadIcon(%hInstance,A)
Note#.uFlags&           = Or(Or(~NIF_ICON,~NIF_TIP),~NIF_MESSAGE)
Note#.uCallbackMessage& = &WM_SHELLNOTIFY
Note#.szTip#            =  Tray-Icon Demo
~Shell_NotifyIcon(~NIM_ADD, Note#)
TB_CREATED& = ~RegisterWindowMessage(IconCreated)
UserMessages &WM_SHELLNOTIFY,TB_CREATED&,~WM_CLOSE

Whilenot Ende&

    Waitinput

    If ~IsIconic(%hwnd)Fenster minimiert ??

        ~ShowWindow(%hwnd,~SW_HIDE)

    Endif

    If %UMessage = ~WM_CLOSE

        ~Shell_NotifyIcon(~NIM_DELETE,Note#)
        Ende& = 1

    Endif

    If %UMessage = TB_CREATED&Explorer-Crash. Icon neu anlegen

        ~Shell_NotifyIcon(~NIM_ADD,Note#)

    Endif

    If %UMessage = &WM_SHELLNOTIFY

        If &ULParam = ~WM_RBUTTONDOWNrechter Mausbutton

            ~SetForegroundWindow(%hWnd)
            Dim Point#,Point
            CreateMenu
            AppendMenu 100,Fenster verbergen
            AppendMenu 101,Fenster zeigen
            Separator
            AppendMenu 102,Ende
            ~GetCursorPos(Point#)
            ~MapWindowPoints(%Desktop,%hwnd,Point#,1)
            Trackmenu Point#.x&,Point#.y&
            Dispose Point#

        Endif

        If &ULParam = ~WM_LBUTTONDOWNlinker Mausbutton

            ~SetForegroundWindow(%hWnd)
            Dim Point#,Point
            CreateMenu
            AppendMenu 200,Linker Button 1
            AppendMenu 201,Linker Button 2
            Separator
            AppendMenu 202,Linker Button 3
            ~GetCursorPos(Point#)
            ~MapWindowPoints(%Desktop,%hwnd,Point#,1)
            Trackmenu Point#.x&,Point#.y&
            Dispose Point#

        Endif

    Endif

    If MenuItem(100)

        ~ShowWindow(%hwnd,~SW_HIDE)

    ElseIf Menuitem(101)

        SendMessage(%hwnd,~WM_SYSCOMMAND,~SC_RESTORE,0)

    ElseIf Menuitem(102)

        ~Shell_NotifyIcon(~NIM_DELETE,Note#)
        Ende& = 1

    Endif

Wend

 
16.07.2007  
 



Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

1.974 Betrachtungen

Unbenanntvor 0 min.
Georg Teles vor 27 Tagen
AndreasS08.12.2018
Alibre18.11.2017
Hans-Jürgen Trog08.02.2013
Mehr...

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

unbekannt (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie