AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Eigenes Systemicon in der Titel-Leite
Thema durchsuchen
Ansicht
Themen-Optionen

Eigenes Systemicon in der Titel-Leite

Ein Thema von PhilGo · begonnen am 1. Dez 2004 · letzter Beitrag vom 2. Dez 2004
Antwort Antwort
Seite 1 von 2  1 2      
PhilGo

Registriert seit: 5. Jul 2004
Ort: Schwallungen
54 Beiträge
 
#1

Eigenes Systemicon in der Titel-Leite

  Alt 1. Dez 2004, 15:13
Hi,

weis jemand von euch, wie man sein eigenes Systemicon (neben "Schließen", "Minimieren", "Maximieren") in die Ttelleiste jedes Programmes, was man öffnet einfügen kann? Auf Klick dieses Icon's soll eine bestimmte Funktion meines Programmes ausgeführt werden, auch wenn meine Anwendung inaktiv ist.
Thx

Gruß
PhilGo


PS:
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#2

Re: Eigenes Systemicon in der Titel-Leite

  Alt 1. Dez 2004, 15:16
Hi,

sowas in der Richtung ist wohl der TJvaCaptionButton der Jedi's

edit: huch, wir sind ja hier in WinAPI

Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
PhilGo

Registriert seit: 5. Jul 2004
Ort: Schwallungen
54 Beiträge
 
#3

Re: Eigenes Systemicon in der Titel-Leite

  Alt 1. Dez 2004, 15:37
Genau. Ich hoffe nämlich, dass das mit hauseigenen Bordmittel geht.
  Mit Zitat antworten Zitat
PhilGo

Registriert seit: 5. Jul 2004
Ort: Schwallungen
54 Beiträge
 
#4

Re: Eigenes Systemicon in der Titel-Leite

  Alt 2. Dez 2004, 08:23
Sry, hat niemand eine Lösung bzw. einen Ansatz für mich?

Ich weis net wie ich das machen soll.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#5

Re: Eigenes Systemicon in der Titel-Leite

  Alt 2. Dez 2004, 08:46
Einen Button nicht gerade, aber ich hatte mir damals von Hagen im Entwicklerforum zeigen lassen, wie man einen Link in die Titelzeile schreiben kann. *seufz* Ach ja, das war damals, als die Beta 1 von Windows XP (damals noch "Whistler") im Netz kursierte und eben solche Links hatte.

Was ich sagen will: Vermutlich wird´s auf das gleiche Prinzip hinauslaufen. Du wirst den Button selbst zeichen müssen, und du wirst wohl auch selbst dafür sorgen müssen, dass er sich wie ein Button verhält.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Eigenes Systemicon in der Titel-Leite

  Alt 2. Dez 2004, 09:19
Zitat von PhilGo:
weis jemand von euch, wie man sein eigenes Systemicon (neben "Schließen", "Minimieren", "Maximieren") in die Ttelleiste jedes Programmes, was man öffnet einfügen kann?
Das hatten wir gerade Anfang der Woche. Bemüh mal die Suche. Aber ich sage dir gleich, da wird nichts vernünftiges bei rauskommen. Selbst einen Button in die eigene Titelzeile zu plazieren und mit einer Funktion zubelgen ist nicht gerade trivial. Das jetzt auch noch bei allen anderen fremden Fenstern zu machen, wird um einiges schwieriger.

Ich würde einfach einen Hotkey benutzten.

@Mathias: Einen Link, so was : www.luckie-online.de , in die Titelzeile eines Fensters? Da wo jetzt beim Browser "Delphi-Praxis :: Beitrag editieren" steht? Also das habe ich noch nie gesehen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#7

Re: Eigenes Systemicon in der Titel-Leite

  Alt 2. Dez 2004, 10:34
Ja. Die Links gab´s auch nur bei der Whistler-Beta. Mit denen konnte man Kontakt zu Microsoft aufnehmen und Bugs melden. Das war fest im OS verdrahtet, aber natürlich hat man es wieder rausgenommen.

Mich hat das interessiert, und Hagen hat da mal eine Komponente gebaut. Ist richtig clever. Ich gucke mal wo ich sie habe. Vllt. meldet sich Hagen selbst auch zum Thema, ansonsten hänge ich sie ran, sobald ich sie finde.
  Mit Zitat antworten Zitat
PhilGo

Registriert seit: 5. Jul 2004
Ort: Schwallungen
54 Beiträge
 
#8

Re: Eigenes Systemicon in der Titel-Leite

  Alt 2. Dez 2004, 11:03
@Luckie: Ich dachte, so was wäre nicht schwer.

Naja, werd halt mal suchen.
Falls ihr HardCopy kennt: Dort ist es auch gemacht.


Gruß
PhilGo
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Eigenes Systemicon in der Titel-Leite

  Alt 2. Dez 2004, 11:10
Ich kenne HardCopy, ein überflüssiges Programm. Aber das heißt noch lange nicht, dass es einfach wäre.
Wahrscheinlich musst du ziemlich viele Windows Nachrichten hooken: CreateWindow(Ex), WM_MOVE, WM_MOVING, WM_NCACTIVATE, ... und dann immer entsprechend reagieren.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Vjay

Registriert seit: 2. Dez 2003
Ort: Berlin/Eschede
481 Beiträge
 
Delphi 7 Professional
 
#10

Re: Eigenes Systemicon in der Titel-Leite

  Alt 2. Dez 2004, 11:30
Nun sei mal nicht so negativ Luckie.

Also möglich sollte es sein, du musst denke ich fast alle NC_ Nachrichten abfangen. Die WM_NCPaint alleine reicht imho nicht aus, da bei der NCActive z.B. die NCPaint nicht noch einmal explizit aufgerufen wird. Du lässt dann Windows die Caption zeichnen und danach zeichnest du deinen Button darüber. Wenn die Cursor-Pos in der WM_NCLBUTTONDOWN passt führst du aus, was auch immer du ausführen willst.

Evtl. reicht es schon eine DLL zu erstellen und mit setWindowsHookEx einen WH_CALLWNDPROCRET-Hook zu initialisieren. Dieser wird jeweils NACHDEM eine Windows-Nachricht verarbeitet wurde aufgerufen. Somit hättest du dann schon deine Windows-gemalte Caption und kannst deinen Button dann in aller Ruhe darüber zeichnen.

Nun musst du entweder noch a) alle Fenster Hooken und dann in der Paint/Click-Prozedur prüfen, ob es sich dabei um ein Hauptfenster handelt, oder b) Herausfinden wann ein Fenster erstellt wurde und dann für die einzelnen Fenster einen WH_CALLWNDPROCRET Hook erzeugen. Dies kannst du erreichen indem du a) einen CBT_Hook erzeugst (SAUBER) oder b) einen Funktionshook für createWindow(Ex) (UNSAUBER!) setzt.

Ich bin mir allerdings nicht ganz sicher ob der WH_CALLWNDPROCRET - Hook auch alle Nachrichten zurückliefert. Daher könntest du auch den alternativen Weg gehen und die Fensterprozedur für die entsprechenden Windows auf deine eigene umbiegen. Dann hast du viel komfortablere Möglichkeiten mit den Messages herumzuhantieren. Ein Beispiel wie das ganze funktioniert kann ich dir auch liefern http://www.aqua-soft.org/board/showthread.php?t=17001 .

Achja XPDesign an/aus musste dann ja auch beachten .

Viel Spass.
Wer später bremst ist eher tot.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz