![]() |
![]() |
|
![]() |
![]() |
|
Registrieren | Hilfe/Forumregeln | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Newbie
![]() Registriert seit: 21.02.2003
Alter: 50
Beiträge: 6
|
![]() Hallo!
Bin in Sachen VC ein echter Neuling, und auch was das Verwenden des WinAPI angeht. Ich will eigentlich nur ein *.BMP-Datei laden und diese in einem Fenster darstellen - mehr will ich nicht. Die Hilfe ist da etwas seltsam. Was ich bisher geschafft habe ist, dass ich den FileHeader geladen habe (mit dieser speziellen Struktur ("BITMAPFILEHEADER") und den BITMAPINFOHEADER. Was zum Teufel sind jetzt diese RGBQUADs (eigentlich will ich ja eh nur 24-Bit BMPs bearbeiten, ber ein bischen Info wäre hier ganz nett). Den restlichen teil habe ich byte-Weise in den Speicher geschrieben (mit LocalAlloc und Pointer). Habe also alle Daten vom BMP-File gelesen, aber wie bekomme ich diese Dinger jetzt auf den Bildschirm (also in ein Fenster)? Habe versucht von einem Fenster mit "GetDC" den DeviceContext zu bekommen, dann mit "CreateCompaibleDC" einen Memory-DC zu erstellen und dann mit "CreateCompatibleBitmap" eine Bitmap-Struktur erstellt. Diese Struktur weise ich mit "SelectObject" dem MemoryDC zu. Im Fenster mache ich immer wenn eine Paint-Message kommt einen "BitBlt" und kopiere vom MemoryDC in den WindowDC. Nur wie bekomme ich die Informationen, die ich vm BMP-File lade in meine BITMAP-Struktur? ermute irgenwie mit diesen "SetDIBits" oder so, komme aber irgendwie nicht auf einen grünen Zweig. Zwischen "AccessViolation" und schwrzem Viereck ist alles möglich - nur keine Graphik ![]() Schetter |
![]() |
![]() |
![]() |
#2 |
Master
![]() |
![]() Hi!
Leichter und schneller geht es wenn du die API funktion LoadImage benutzt! HANDLE*LoadImage(****** ****HINSTANCE*hinst, ****LPCTSTR*lpszName, ****UINT*uType, ****int*cxDesired, ****int*cyDesired, ****UINT*fuLoad); hinst ist die Instanz deines Programms. lpszName ist der komplette Pfad zu deinem bild. uType ist IMAGE_BITMAP wenn due ein.bmp oder .jpg laden willst cxDesired und cyDesired setze auf LR_DEFAULTSIZE (damit das Bild in orig. Größe geladen wird) fuLoad setze auf LR_DEFAULTCOLOR Zurück bekommst du einen Handle (HBMP) den du mit SelectObject in einen DC selektiern kannst (den du zuerst mit CreatCompatibleDC erstellt hast) und dann kannst du mit BitBlt das Bild in dein Fenster kopieren. Hoffe das hilft dir weiter. Wenn nicht einfach nachfragen.
____________________________________
__________________ |»»»»»SONIC««««««| ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ |
![]() |
![]() |
![]() |
#3 |
Newbie
![]() Registriert seit: 21.02.2003
Alter: 50
Beiträge: 6
|
![]() Funkt.... Ja, diese LoadImage - Funktion ist schon was fines, danke ...
lG Schetter |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|