Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#14

Re: API Casten ala ALIAS von VB

  Alt 17. Okt 2008, 11:16
Nach einigen versuchen habe ich es selbst geschafft:
Hier ist die lösung...

Delphi-Quellcode:
type
  TMyBitmapInfo = Record
     bmiHeader : TBitmapInfoHeader;
     bmiColors : array [0..255] of RGBQUAD;
  end;

  function MyCreateDIBSection(DC: HDC; const p2: TMyBitmapInfo; p3: UINT;
  var p4: Pointer; p5: THandle; p6: DWORD): HBITMAP; stdcall; external 'GDI32.DLLname 'CreateDIBSection';
Delphi-Quellcode:
// Create DIB section
function TSkinEngine.skCreateDIBSection (imgHdc: Hdc; Width, Height:Integer; BitCount: Integer):HBITMAP;
var
  bi: TMyBitmapInfo;
  p : Pointer;
begin
    bi.bmiHeader.biSize := SIZEOF(bi.bmiHeader);
    bi.bmiHeader.biWidth := Width;
    bi.bmiHeader.biHeight := Height;
    bi.bmiHeader.biPlanes := 1;
    bi.bmiHeader.biBitCount := BitCount;
    bi.bmiHeader.biCompression := BI_RGB;
    Result := MyCreateDIBSection(imgHdc, bi, DIB_RGB_COLORS, p, 0, 0);
end;
aufruf als Beispiel:
hPaintBitmap := skCreateDIBSection(imgHdc, MAX(rc.Right, X), MAX(rc.Bottom, Y), 32); gruss Emil
Miniaturansicht angehängter Grafiken
crystal_119.jpg   standard_450.jpg   blur_192.jpg  
  Mit Zitat antworten Zitat