Was ist ein einfacher Weg, ein C ++ Win32-Programm zu implementieren ...
- Anzeige eines unkomprimierten 800x600x24 Bitmap-Bildes
- In einem Fenster ohne Grenzen (das einzige, was sichtbar ist, ist das Bild)
- das schließt nach zehn Sekunden
- und verwendet keine MFC
Sie können:
Wenn Sie auf moderne Versionen von Windows (Windows 2000) und höher abzielen, können Sie die UpdateLayeredWindow Funktion, um beliebige Bitmap anzuzeigen (einschließlich eines mit einem Alpha-Kanal, falls gewünscht).
Ich blogge eine vierteilige Serie darüber, wie man eine C ++ Win32-App schreibt, die das tut Dies. Wenn Sie genau zehn Sekunden warten müssen, um den Begrüßungsbildschirm zu schließen (anstatt bis das Hauptfenster fertig ist), müssen Sie Dan Cristoloveanus vorgeschlagene Technik eines Timers verwenden, der DestroyWindow aufruft.
Registrieren Sie eine Klasse für das Begrüßungsfenster und erstellen Sie ein Fenster mit diesen Stilen:
_
POPUPWINDOW: stellt sicher, dass Ihr Fenster keine Beschriftung / sysmenu _
EX _
TOPMOST: hält den Begrüßungsbildschirm immer am Anfang. Beachten Sie, dass dies ein wenig aufdringlich ist. Es ist möglicherweise besser, das Begrüßungsfenster als untergeordnetes Fenster zu definieren. Möglicherweise müssen Sie jedoch die Z-Reihenfolge manipulieren, um alle anderen Popup-Fenster (wenn Sie eines erstellen) unterhalb des Begrüßungsbildschirms zu behalten. Verwenden Sie CreateDIBSection, um die Bitmap zu laden. Es sollte einfach sein, da BMP-Dateien im Wesentlichen Dumps von DIB-Strukturen sind. Oder tu, was Ken gesagt hat und benutze LoadImage.
Behandle die WM _
PAINT- oder WM _
ERASEBKGND-Nachricht, um die Bitmap im Fenster zu zeichnen.
Am WM _
CREATE setzen Sie einen Timer von 10 Sekunden und wenn Windows die WM _
TIMER Nachricht sendet, lassen Sie das Fenster sich selbst zerstören.
Der Schlüsselpunkt ist hier, Layered Window zu verwenden.
Sie können mit einem vom Win32-Assistenten generierten Projekt starten und den CreateWindow-Aufruf in CreateWindowEx ändern und festlegen WS_EX_LAYERED als erweiterter Fensterstil und Kombination von WS_POPUP und WS_SYSMENU als Fensterstil. Wenn Sie Ihre Anwendung starten, ist sie unsichtbar. Dann sollten Sie UpdateLayeredWindow verwenden, um Ihr Bild zu malen. Möglicherweise benötigen Sie auch die Funktion AlphaBlend , wenn Sie ein PNG-Bild mit Alpha-Layer verwenden möchten .
Hoffe, das hilft!
Es ist eine Win32 API FAQ
Siehe professionelles Win32api-Forum Nachrichten: //194.177.96.26/comp.os.ms-windows.programmer.win32 wo es seit 20 Jahren hunderte Male beantwortet wurde.