If you want a splash screen, your best bet is to use a modeless dialog containing your splash image. If you're doing this in VC++, you can make a dialog (make sure you make the style thin-line or no-border) of any size in the resource editor, then insert an image in the upper-left corner of that dialog. In the procedure for that dialog, in the WM_CREATE message, use SetWindowPos to resize the dialog to the exact size of your splash image and place the dialog at the top of the Z-order (make it the topmost window). So, you'll display this dialog (using DialogBox) just before you start loading, and you'll destroy it (using SendMessage(hwndSplash, WM_CLOSE, 0, 0), which implies that you'll have to somehow keep track of that dialog's handle) when you're done with it. This method gives you a "true" splash screen.