icon neben Uhr



  • PMrogan schrieb:

    Solch ein Icon nennt sich Tray-Icon..
    Weitere Infos dazu gibts auch in der WinAPI-FAQ

    Du musst halt nur die Fenster beim minimieren verstecken..

    Habe ich mir mal angesehen, problem ist nur das ich mein Programm mit Hilfe von wxWidgets programmiert habe, so dass mir diese "Fenster Handle" fehlen. Oder habe ich das nun falsch verstanden?

    Hier zum beispiel..

    nidTrayIcon.hWnd = hMainWindow; //Exemplarisch, HWND des Fensters an dessen MessageLoop die Nachricht geschickt werden soll

    In den meisten Beispielen wurde das komplette Programm mit Hilfe der WIN API erstellt.
    Gibt es da eine lösung ohne alles zu fuß machen zu müssen, also alles mit WINAPI neu zu erstellen?



  • Das hättest du ja auch schon vorher schreiben können 😉

    Für wxWidgets gibt es natürlich Kapselungen..

    wxTaskBarIcon
    Hinweise im Wiki



  • hmpf der zeigt bei mir kein icon an. Die SPalte neben der Uhr wird zwar plötzlich Breiter und wenn ich drüber gehe erscheint auch der von mir definierte Text, nur wird kein icon angezeigt.

    Ich vermute mal das es daran liegt:

    This class represents a Windows 95 taskbar icon, appearing in the 'system tray' and responding to mouse clicks. An icon has an optional tooltip. This class is only supported for Windows 95/NT.

    : (



  • Das sieht für mich eher so aus, als ob das Icon nicht richtig geladen wurde. Was sagt der Debugger?



  • Wenn ich unwissender es nicht besser wüsste würde ich sagen er sagt nichts.

    Brauchte nie einen Debugger.

    Unter option ist Debugger Go und wenn das Programm ausgeführt ist sagt er stop das wars.

    Debugger has started.
    Debugger has stopped.

    Glaube aber ich bin zu dumm den zu bedienen ; D

    wxTaskBarIcon *tray = new wxTaskBarIcon();
    tray->SetIcon(wxIcon("hm.ico"), "test");



  • drenan schrieb:

    tray->SetIcon(wxIcon("hm.ico"), "test");
    

    Wird denn "hm.ico" überhaupt geladen?
    Woher weißt Du wohin GetCurrentDirectory zeigt? Bist Du Dir sicher das es in Dein Applikations-Verzeichnis zeigt (denn Du gehst davon aus, da Du keinen absoluten Pfad zum Icon angibst).

    Ich gehe mal stark davon aus (ohne wxWidgets zu kennen) das das Laden des Icons mittels wxIcon("hm.ico") schlichtweg fehlschlägt...



  • Hepi schrieb:

    Woher weißt Du wohin GetCurrentDirectory zeigt?

    Ich bin tatsächlich davon ausgegangen. Ich werde es mal mit einem absoluten
    Pfad versuchen.



  • Naja auch eine absolute Pfadangabe hat nichts gebracht : (



  • Ich glaub auch beinahe nicht, das das so geht.

    Erwartet SetIcon nicht als ersten Parameter die Adresse auf eine wxIcon-Klasse?

    wxIcon sagt da das hier:

    Anleitung wxIcon schrieb:

    wxIcon(const wxString& name, long type, int desiredWidth = -1, int desiredHeight = -1)
    

    Loads an icon from a file or resource.

    Wie gesagt, kenne mich nicht mit wxWidgets aus, aber so sieht das für mich beinahe aus...



  • Kennt sich denn wer mit Wx aus?

    Ich habe schon ettliches ausprobiert aber dieses dumme Icon wird nicht angezeigt.. : (


Anmelden zum Antworten