SetWindowTitle() verändert nicht die Taskleiste

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

SetWindowTitle() verändert nicht die Taskleiste

Beitrag von Batze »

Wenn ich den Titel eines Fensters mit SetWindowTitle() ändere wir das bei mir in der Taskleiste der Titel nicht verändert. Ich brauch das aber für eine Vortschrittsanzeige.

Code: Alles auswählen

OpenWindow(0, 10, 10, 200, 100, #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, "0% Fertig")

Repeat
  Delay(60)
  Prozent.f + 0.1
  SetWindowTitle(0, Str(Prozent) + "% Fertig" )
  Repeat
    Event = WindowEvent()
    If Event = #PB_Event_CloseWindow : Break 2 : EndIf
  Until Event = 0
Until Prozent => 100
Das hier ist natürlich nur ein Beispielcode. <)
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Das ist ein Bug von Windows so wies aussieht, denn SetWindowText_() hilft auch nicht.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Aber es gibt doch Programme die das schaffen, z.B: Nero.
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

DarkDragon hat geschrieben:Das ist ein Bug von Windows so wies aussieht, denn SetWindowText_() hilft auch nicht.
Nein, sicher kein Windows-Bug sondern eine Eigenschaft von PureBasic-Fenstern (Oder ein PB-Bug, nenne es wie du willst). Denn wenn ich in meinen Programmen (die alle zu 100% auf der WinAPI basieren) den Fenstertext ändere, (übrigens mit SetWindowText(hwnd, text)), dann ändert sich auch die Taskleiste unten mit. Also dann macht PureBasic die Fensterklassenregistration etwas anders als normal per WinAPI üblich wäre. Ein WinAPI Fenster jedenfalls passt den Taskleistentext ohne Probleme an den Fenstertext an.
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Das heißt, ich kanns mit PB nicht lösen, wenn ich nicht das Fenster mit WinApi erstelle und damit dann auch den Titel ändere?
Hast du mal einen Beispielcode?
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

Nun, ich habe Problemstellung mal Fred gemailt. Mal sehen, was er dazu meint...
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

Batze hat geschrieben:Das heißt, ich kanns mit PB nicht lösen, wenn ich nicht das Fenster mit WinApi erstelle und damit dann auch den Titel ändere?
Hast du mal einen Beispielcode?
Mein Programm ist mehrere tausend Zeilen lang und meine Fenster basieren auf selbsterstellten Klassen in C++, damit wirst du wohl nicht viel anfangen können. Zumindest so aus dem Zusammenhang gerissen. Jedenfalls werden meine Fenster mittels CreateWindow erstellt, haben alle eine eigene registrierte Fensterklasse und auch eine eigene Windows-Prozedur (Callback).
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

ömm, aber so ne frage:
wiso machst du das "schwierig", wenns auch "einfach" geht?
ich würde jetzt keine fenster mittels der api create window öffnen, aber warum machst du das?
hat das einen vorteil?
-.-"
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Green Snake hat geschrieben:ömm, aber so ne frage:
wiso machst du das "schwierig", wenns auch "einfach" geht?
ich würde jetzt keine fenster mittels der api create window öffnen, aber warum machst du das?
hat das einen vorteil?
Bei CreateWindow/CreateWindowEx muss die Fensterklasse zunächst Registriert werden mittels RegisterClass. Dann wird der CreateWindow/CreateWindowEx Befehl aufgerufen. Messages werden üblicherweise über ein WindowCallback abgefangen.

[EDIT]
Üblicherweise baut man sich im vorraus deswegen eine Klasse(sofern es die Sprache erlaubt), mit der man ganz einfach Fenster so wie in PureBasic erstellen kann. Dann braucht man nurnoch

Code: Alles auswählen

CWindow Window;
HWND hWnd;
hWnd = Window->Create(0, 0, 640, 480, "Titel");
...
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Leo
Beiträge: 420
Registriert: 26.10.2004 18:26

Beitrag von Leo »

Wenn schon

Code: Alles auswählen

hWnd = Window.Create(0, 0, 640, 480, "Titel");
weil Window ist ja kein Pointer auf ein Objekt, oder lieg ich da jetzt falsch?
Antworten