SplashScreen mit WinAPI und C

04/01/2009 - 23:11 von Thomas Steinbach | Report spam
Hallo NG,

wie kann man einen SplashScreen mit
ProgressBar in reinem C und mit der WinAPI
realisieren?

Momentan erzeuge ich am Anfang einen Thread (neu
fuer mich) in dem ich dann mit CreateDialog einen
entsprechenden Dialog aus einer Resource erstelle.
Allerdings will das alles noch nicht so ganz funktionieren.

Ziel ist es diesen Thread ca. drei Sekunden lang anzeigen
zu lassen und waehrend im Hintergrund die Hauptanwendung
laedt soll in einer ProgressBar eben ein gewisser Fortschritt
angezeigt werden.

Ich dachte das mit einem Timer umsetzen zu koennen,
aber meine Versuche mit SetTimer (auch noch neu fuer mich)
schlagen irgendwie alle fehl. Auch kommen meine
Messages in der Form

SendDlgItemMessage(g_hWndSplash, IDC_PROGRESS_SPLASH, PBM_SETRANGE, 0,
MAKELPARAM(0, 100));

SendDlgItemMessage(g_hWndSplash, IDC_PROGRESS_SPLASH, PBM_SETPOS, 43, 0); /*
just to test */

SendDlgItemMessage(g_hWndSplash, IDC_PROGRESS_SPLASH, PBM_SETSTEP, 0, 0);

irgendwie noch nicht richtig an.

Hat jemand eventuell mal ein Beispielprogramm, Idee
oder weiss wie man das am Besten umsetzt?

Thomas
 

Lesen sie die antworten

#1 René König
13/01/2009 - 02:25 | Warnen spam
Hallo Thomas!

GUI-Objekte gehören den Threads, die sie erzeugen. Wenn Du das per
CreateDialog machst, benötigst Du in diesem Thread auch eine eigene
Message-Loop. Wenn Du aber in diesem Thread nur Deinen Splash-Screen
anzeigen willst, ist es wohl einfacher, Du erzeugst den Dialog per
DialogBox. Dann kannst Du Dir zusàtzlichen Aufwand einsparen.

Gruß,
René

Ähnliche fragen