Marquee Progressbar Mingw
-
Danke erstma für die Antwort.
Ich denke, ein ShowWindow wird an dieser Stelle nicht benötigt, da ich im WM_CREATE unter anderem auch noch Buttons erstelle, welche korrekt angezeigt werden.Gruss
-
Dein Programm muss mind. Version 6 der Comctl32.dll verwenden (siehe). Tut es das?
-
Darauf bin ich auch schon gestossen, jedoch immer daran gescheitert, dies unter Mingw einzubinden...
Der Aufruf von InitCommonControls(); gibt einen Kompilierfehler:main.cpp|804|undefined reference to `InitCommonControls@0'|
-
kbob schrieb:
Darauf bin ich auch schon gestossen, jedoch immer daran gescheitert, dies unter Mingw einzubinden...
Der Aufruf von InitCommonControls(); gibt einen Kompilierfehler:main.cpp|804|undefined reference to `InitCommonControls@0'|Dann hast du den 2. Punkt von dem nicht beachtet!
http://www.c-plusplus.net/forum/187370
-
Ich würde mal fast behaupten das dein Fehler alleine schon in der Definitionen von PBS_MARQUEE liegt.
Denn PBS_MARQUEE ist schon in den Untiefen von commctrl.h definiert. Wenn du hier diese Definition findest wird du sicherlich folgendes finden:
#if (_WIN32_WINNT >= 0x0501) #define 0x08 #define PBM_SETMARQUEE (WM_USER+10) #endifd.h. du musst in den Projekteinstellungen die Präprozessordefinition _WIN32_WINNT auf 0x0501 setzen. Nach der MSDN bedeutet dass das dein Program mindestens Windows XP benötigt da die Progressbar des Typs PBS_MARQUEE erst ab Windows XP zur Verfügung steht.
Ob das auch mit dem Manifest funktioniert weis ist nicht, da ich nicht weis ob der Compiler so intelligent ist sich zuerst die Manifest Datei anschaut um danach die richtige Präprozessordefinitionen zu setzen.
-
-lowbyte- schrieb:
kbob schrieb:
Darauf bin ich auch schon gestossen, jedoch immer daran gescheitert, dies unter Mingw einzubinden...
Der Aufruf von InitCommonControls(); gibt einen Kompilierfehler:main.cpp|804|undefined reference to `InitCommonControls@0'|Dann hast du den 2. Punkt von dem nicht beachtet!
http://www.c-plusplus.net/forum/18737014|warning: ignoring #pragma comment |Bitte ein Bit schrieb:
Ich würde mal fast behaupten das dein Fehler alleine schon in der Definitionen von PBS_MARQUEE liegt.
Denn PBS_MARQUEE ist schon in den Untiefen von commctrl.h definiert. Wenn du hier diese Definition findest wird du sicherlich folgendes finden:
#if (_WIN32_WINNT >= 0x0501) #define 0x08 #define PBM_SETMARQUEE (WM_USER+10) #endifd.h. du musst in den Projekteinstellungen die Präprozessordefinition _WIN32_WINNT auf 0x0501 setzen. Nach der MSDN bedeutet dass das dein Program mindestens Windows XP benötigt da die Progressbar des Typs PBS_MARQUEE erst ab Windows XP zur Verfügung steht.
Ob das auch mit dem Manifest funktioniert weis ist nicht, da ich nicht weis ob der Compiler so intelligent ist sich zuerst die Manifest Datei anschaut um danach die richtige Präprozessordefinitionen zu setzen.
629|error: 'PBS_MARQUEE' was not declared in this scope|... Noch jemand eine Idee?
-
Bitte ein Bit schrieb:
Ich würde mal fast behaupten das dein Fehler alleine schon in der Definitionen von PBS_MARQUEE liegt.
Denn PBS_MARQUEE ist schon in den Untiefen von commctrl.h definiert. Wenn du hier diese Definition findest wird du sicherlich folgendes finden:
#if (_WIN32_WINNT >= 0x0501) #define 0x08 #define PBM_SETMARQUEE (WM_USER+10) #endifd.h. du musst in den Projekteinstellungen die Präprozessordefinition _WIN32_WINNT auf 0x0501 setzen. Nach der MSDN bedeutet dass das dein Program mindestens Windows XP benötigt da die Progressbar des Typs PBS_MARQUEE erst ab Windows XP zur Verfügung steht.
Ob das auch mit dem Manifest funktioniert weis ist nicht, da ich nicht weis ob der Compiler so intelligent ist sich zuerst die Manifest Datei anschaut um danach die richtige Präprozessordefinitionen zu setzen.
Sorry für den Post oben, bezüglich deines Tipps, habe es falsch gelesen.
Wenn ich das so mache, also mit #define _WIN32_WINNT 0x0501 ändert sich aber trotzdem nichts, eine Progressbar wird nicht angezeigt...
-
kbob schrieb:
14|warning: ignoring #pragma comment |Was für einen Compiler verwendest du? Kannst du die gesamte Direktive posten?
-
Da Du mit MinGW und CodeBlocks arbeitest wirst Du allem anschein nach auch den GCC verwenden welcher
#pragma commentnicht unterstützt, dies ist eine MSVC-Erweiterung.Demnach wirst Du die lib als Kommandozeilen-Parameter mit angeben, bzw. in CodeBlocks unter den Libs mit angeben müssen.
Gut Schuß
VuuRWerK
-
Glühbirne schrieb:
kbob schrieb:
14|warning: ignoring #pragma comment |Was für einen Compiler verwendest du? Kannst du die gesamte Direktive posten?
Hi, ich verwende den GNU GCC Compiler, welcher bei der CodeBlocks-Suite mit MinGW integriert ist.
Was meinst du mit Direktive?Gruss & Danke
-
VuuRWerK schrieb:
Demnach wirst Du die lib als Kommandozeilen-Parameter mit angeben, bzw. in CodeBlocks unter den Libs mit angeben müssen.
Kannst du mir irgendeine Seite oder so vorschlagen, die erklärt, was zu tun ist?
Wäre sehr froh.Danke & Gruss
-
Benutzt Du denn schon andere externe Bibliotheken in Deinem Projekt? Dann einfach genauso einbinden. Ansonsten steht in der CodeBlocks FAQ was dazu.
Gut Schuß
VuuRWerK