Systrays mit winapi verwalten

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Swappy
Beiträge: 51
Registriert: 09.12.2004 22:56
Wohnort: Hamburg
Kontaktdaten:

Systrays mit winapi verwalten

Beitrag von Swappy »

Hallo,

also ich habe irgendwie schon überall rumgesucht aber ich komme nicht weiter. Ich habe ein Fenster mit WinAPI geöffnet und möchte dazu nun ein Systray icon anlegen. Soweit klappt das, ich kann das ion da unten sehen, doch die klickabfrage geht nicht, meine frage ist jetzt wie ich das mit der API mache, weil die callback funktion die PB abfragen ja ignoriert...

Wäre cool wenn mir wer weiterhelfen könnte.
Wer anderen eine Grube gräbt, hat Gold im Mund.
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

wieso gehen deine klicks nicht???
bei mir hat das bis jetzt immer geklappt
fragst du auch das richtige event ab?
Benutzeravatar
Swappy
Beiträge: 51
Registriert: 09.12.2004 22:56
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Swappy »

Also ich öffene mit CreateWindowEx_() ein fenster und gebe die Procedure unten als lpfnWndProc an...

Code: Alles auswählen

Procedure WindowCallback(Window, Message, wParam, lParam) 
  Select Message 
    Case #WM_CLOSE 
     DestroyWindow_(Window) : End
    Case #WM_RBUTTONDOWN
     DisplayPopupMenu(0,Window)
    Case #PB_Event_SysTray
     If EventGadget() = #CL_SysTray : End : EndIf
    Default 
      Result  = DefWindowProc_(Window, Message, wParam, lParam) 
  EndSelect 
  ProcedureReturn Result 
EndProcedure
So geht das zb nicht...
Wer anderen eine Grube gräbt, hat Gold im Mund.
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

mal ne allgemeine Frage: Warum benutzt du APIs? Es geht doch mit den "normalen" PB-Befehlen auch und ist einfacher zu bedienen
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
Swappy
Beiträge: 51
Registriert: 09.12.2004 22:56
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Swappy »

weil ich für meine zwecke die api function zum fenster öffnen brauche und ich da in der callback function keine pb event abfragen benutzen kann soweit ich das verstehe
Wer anderen eine Grube gräbt, hat Gold im Mund.
real
Beiträge: 468
Registriert: 05.10.2004 14:43

Beitrag von real »

Kannst Du den kompletten Code posten? Oder zumindest noch den Teil, in dem das Fenster erstellt wird?
Benutzeravatar
#NULL
Beiträge: 2237
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

ich glaube du mußt in der callback-proc den rückgabe-wert #PB_ProcessPureBasicEvents verwenden, dann kannst du zusätzlich die PB-events verarbeiten.
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Die Konstante ist nur dafuer da um die Nachricht auch im
naechsten (oder im eigentlichem) Callback zu verarbeiten.
Es gibt zwar einige PB-Events die die gleichen Werte haben
und auch das gleiche machen, darauf verlassen wuerde
ich mich allerdings nicht.Wenn du dein Fenster mit der WinApi
erstellt hast, musst du auch die Events mit WinApi abarbeiten.
Benutzeravatar
Swappy
Beiträge: 51
Registriert: 09.12.2004 22:56
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Swappy »

Alles klar, ich habe das jetzt hinbekommen :-) danke!
Wer anderen eine Grube gräbt, hat Gold im Mund.
Antworten