Tray-Icon mit einem Konsolenprogramm.
-
@Dago
In dem Fall kommst du leider ohne WinAPI nicht aus. Also ab ins WinAPI-Forum.
-
Dieser Thread wurde von Moderator/in AJ aus dem Forum DOS und Win32-Konsole in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
flyingCoder schrieb:
PS: Du kannst mit einem Win32-Konsolenprogramm alles machen, wie auch mit einem Windowsprogramm, weil es streng genommen auch ein Windowsprogramm ist. Wenn du windowsspezifische Dinge in dein Programm reinbauen willst, geht das natürlich nur mit der WinAPI

Wie kann ich verhindern, dass sich das Fenster nicht vergrößert + wie schaffe ich es die Titelleiste auszublenden?
MfG SideWinder
-
SideWinder schrieb:
Wie kann ich verhindern, dass sich das Fenster nicht vergrößert + wie schaffe ich es die Titelleiste auszublenden?
Ich weiß nicht, ob ich dich richtig verstanden habe, aber nimm einfach statt WS_OVERLAPPED(WINDOW) den WS_POPUP Style. Und dann noch WS_SIZEBOX und evtl. WS_MAXIMIZEBOX und WS_MINIMIZEBOX weglassen bzw. die Flags löschen

-
flenders schrieb:
Ich weiß nicht, ob ich dich richtig verstanden habe, aber nimm einfach statt WS_OVERLAPPED(WINDOW) den WS_POPUP Style. Und dann noch WS_SIZEBOX und evtl. WS_MAXIMIZEBOX und WS_MINIMIZEBOX weglassen bzw. die Flags löschen

Weiss jemand, wie die Funktion heisst mit der man nachträglich den "window-style" ändern kann?

-
@flyingCoder: SetWindowLong()
@flenders: Hehe, geht bei der Konsole nicht - sollte bloß flyingCoder zeigen, dass man eben nicht alles mit der Konsole machen kann was sonst auch funktioniert
Aber kümmert euch lieber um die ursprüngliche Frage -> TrayIcon
MfG SideWinder
-
SideWinder schrieb:
Hehe, geht bei der Konsole nicht - sollte bloß flyingCoder zeigen, dass man eben nicht alles mit der Konsole machen kann was sonst auch funktioniert

Achso, wusst nicht, dass das nur auf das Konsolen-Fenster bezogen sein sollte.
SideWinder schrieb:
Aber kümmert euch lieber um die ursprüngliche Frage -> TrayIcon
Afaik brauchst du ein "normales" Fenster (welches aber auch unsichtbar sein darf)

-
Hi!
Wie ich ein TrayIcon erstelle hab ich inzwischen rausgefunden, nur verschwindet es immer wieder sofort. Das kriege ich aber auch noch hin. Ich vermute das liegt daran, weil ich in dem Konsolenprogramm keine Nachrichten abfang.
Kann mir jemand vielleicht ein kleines Beispiel (oder links zu nem Tut) geben oder erklären, wie ich Nachrichten in einem Konsolenprogramm in der int main() abfangen kann?Danke schon mal für eure Hilfe bis jetzt. Thx!

Mfg Dago
-
ich wär mir nicht sicher ob das überhaubt geht!?
-
flyingCoder schrieb:
Du kannst mit einem Win32-Konsolenprogramm alles machen, wie auch mit einem Windowsprogramm, weil es streng genommen auch ein Windowsprogramm ist. Wenn du windowsspezifische Dinge in dein Programm reinbauen willst, geht das natürlich nur mit der WinAPI

Daraus schließe ich, dass es eigentlich gehen müsste...

-
diese aussage ist bereits von SideWinder widerlegt worden...
du könntest versuchen das fenster deiner konsolenanwendung zu finden und dann per subclassing die nachrichtenverarbeitung zu verändern...
-
dot schrieb:
diese aussage ist bereits von SideWinder widerlegt worden...
Hätte nicht gedacht, dass meine Aussage so auf die Goldwaage gelegt würde...
Als ich das geschrieben habe, dachte ich mehr an Ressourcen, etc.MFG, flyingCoder.
-
dot schrieb:
per subclassing die nachrichtenverarbeitung zu verändern...
Ich kenn mich mit WinAPI noch nicht so gut aus. Wie ich das Fenster finden könnte weiß ich, aber mit subclassing kann ich nichts anfangen. Und wieso sollte ich die Nachrichtenverarbeitung verändern? Ich will die Nachrichten ja nur abfangen und auslesen...

Ich mein, zu einem Konsolenfenster müssen doch auch Nachrichten geschickt werden, oder?
-
Du gibst doch bei der Erstellung das Fenster-Handle an, welches die Nachrichten empfangen soll. Und dort musst du sie eben abfangen

Wenn du dich nicht mit Sub-Classing herumschlagen willst, kannst du auch einfach (wie schon erwähnt) ein unsichtbares Fenster erstellen.
Ganz evtl. kannst du auch direkt eine Message-Loop in main einbauen und dort die Nachrichten nicht dispatchen, sondern direkt bearbeiten (Spekulation)
-
Ich glaub ihr habt mich überredet. Ich probier das mal mit dem unsichtbaren Fenster. Oder ich probier einfach so mal rum, früher oder später werd ichs irgendwie schaffen.... Die Methode hat bislang noch immer funktioniert...

Danke für eure Hilfe!
Mfg Dago