Конференция "KOL" » Как загрузить иконку в Bitmap.
 
  • Valera (11.05.08 08:18) [0]
    Как загрузить иконку в PBitmap.
  • Compiler © (11.05.08 13:39) [1]
    var
     SDC, DDC: HDC;
     hBMP: HBitmap;
     TheBitmap:Pbitmap;
     iINFO: TICONINFO;
    begin
     GetIconInfo(Applet.Icon, iinfo);
     SDC := CreateCompatibleDC(form.canvas.Handle);
     DDC := CreateCompatibleDC(form.canvas.Handle);
     hBMP := SelectObject(DDC, iinfo.hbmColor);
     hBMP := SelectObject(SDC, iinfo.hbmMask);
     TheBitmap:=NewBitmap(0,0);
     BitBlt(DDC, 0, 0, 32, 32, SDC, 0, 0, SRCPAINT);
     TheBitmap.handle := SelectObject(DDC, hBMP);
     DeleteDC(DDC);
     DeleteDC(SDC);
     //TheBitmap.Draw(Form.Canvas.Handle,0,0);
     TheBitmap.Free;
    end;

  • Compiler © (11.05.08 15:00) [2]
    > Compiler ©   (11.05.08 13:39) [1]

    Нехороший код ;-)
    Этот лучше

    var
     TheBitmap:Pbitmap;
     DC,ODC:hDC;
    begin
     TheBitmap:=NewBitmap(16,16);
     DC:=CreateCompatibleDC(0);
     oDC:=SelectObject(DC,TheBitmap.Handle);
     DrawIconEx(DC,0,0,LoadIcon(hinstance,'MAINICON'),
                TheBitmap.Width,TheBitmap.Height,0,CreateSolidBrush(ClWhite),DI_IMAGE);
     SelectObject(ODC,TheBitmap.Handle);
     DeleteObject(DC);
     TheBitmap.Draw(form.canvas.Handle,0,0);
     TheBitmap.Free;
    end;

  • Дмитрий К © (11.05.08 18:27) [3]
    bmp: PBitmap; ico: PIcon;
    ...
    bmp.Handle := ico.Convert2Bitmap(clFuchsia);

  • Valera (11.05.08 19:37) [4]
    Спасибо. Это то что нужно..
 
Конференция "KOL" » Как загрузить иконку в Bitmap.
Есть новые Нет новых   [134431   +15][b:0][p:0.001]