Probleme mit Dialog Box und Windows XP Styles
-
Hi,
ich habe ein Win32 Programm geschrieben, das nur auf einer DialogBox basiert. Wenn ich versuche, die Unterstützung für die Windows XP Oberfläche in das Programm einzubinden und es danach starten will, lässt es sich nicht mehr öffnen. Windows gibt keine Fehlermeldung von sich, der Prozess beendet sich einfach gleich nach dem Start. Ich habe zwei Methoden versucht, die Themeunterstützung einzubinden. 1. mit der IDE, die ich verwende (Dev-C++). Da gibts eine Option, die das erledigt. 2. Mit einem separaten Programm (StyleItXp oder so ähnlich). Mit meinen anderen Programmen funktioniert das einwandfrei, nur nicht mit diesem. Liegt vielleicht daran, dass es eine Dialog Box ist, bin mir aber nicht sicher. Ich hoffe jemand kann mir hier weiterhelfen.
-
Du mußt, da unter XP mit XP-Style selbst normale Buttons CommonControls sind, InitCommonControls in Deinem Programm aufrufen.
Tust Du das?
-
hm mein compiler sagt:
`InitCommonControls' undeclared (first use this function)
ich benutze mingw 3.2 als compiler. habe auch eben die winapi dateien für diesen auf den neuesten stand gebracht, aber die funktion wird immer noch nicht erkannt.
-
commctrl.h
-
LOL ich idiot hab natürlich die entsprechende header datei vergessen. jetzt geht es. vielen dank
-
nein es geht doch nicht

[Linker error] undefined reference to `InitCommonControls@0'
D:\Dev-Cpp\Projects\Umrechner\Makefile.win
[Build Error] [Umrechner.exe] Error 1Hier meine WinMain
int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { InitCommonControls(); hInst=hThisInstance; return DialogBoxParam(hThisInstance,MAKEINTRESOURCE(WindowMain),0,DlgProcedure,0); }
-
Du Idiot hast noch vergessen die Import-Library zu linken.

-
Jep, gegen comctl32.lib linken, dann paßt es.
Aber mal 'ne andere Frage:
Warum benutzt Du DialogBoxParam, wenn Du doch keinen Parameter an die Dialogbox übergibst? Hat das nen Sinn?
-
ja stimmt, sorry

Ich finde man sollte das WinAPI FAQ damit ergänzen.
-
Hi.
Meeensch, ich kenn zwar diese "anonymen" Poster, aber könnten die vielleicht mal etwas "schönere" Posts machen? Ist ja fast unverschämt!
Ne zu den Visual Styles. Anscheinend checkst Du noch nicht so, welche header zu welcher lib gehört, und anders rum.
Aber, wie oft noch, sucht doch nach Beispielen. :phttp://www.win-api.com/index.php?content=resources&KW=Microsoft Windows Visual STYLES <--- Hättest es direkt gehabt. Schnell, unkompliziert und ohne Kommentare von Gästen.
-
nun ich könnte auch dialogbox benutzen, aber das ist ein makro, welches eh nochmal dialogboxparam aufruft. den parameter behalte ich mir für später vor, falls ich mein programm ergänzen möchte
-
achso. nun klappt alles?
-
Ja jetzt klappt es zum Glück
-
ach ja, wer mingw als compiler nutzt, findet die comctl32.lib unter dem namen libcomctl32.a