Текущий архив: 2008.01.20;
Скачать: CL | DM;
Вниз
Прозрачная картинка Найти похожие ветки
← →
webpauk © (2007-12-21 13:19) [0]В папках Мои рисунки, Моя музыка отображаются фоновые рисунки, указывающие на тип папки (ноты, картинки).
Хочу такую фишку для компонента, например TlistBox.
на компонент выводится полупрозрачный рисунок, поверх которого (или под которым) идут TlistBox.Items.
Кто-нить подскажет где рыть?
← →
clickmaker © (2007-12-21 13:23) [1]подмена WndProc и перехват WM_PAINT? или WM_ERASEBKGND
или OnDrawItem и выводить только нужный фрагмент
← →
webpauk © (2007-12-21 13:25) [2]
> clickmaker © (21.12.07 13:23) [1]
listbox для примера.
OnDrawItem - не подойдет.
подмена WndProc и перехват WM_PAINT попробую...
← →
clickmaker © (2007-12-21 13:30) [3]
> OnDrawItem - не подойдет
так проще. Можно же рисовать
ListBox.Canvas.CopyRect(ItemRect, BkBmp.Canvas, SrcRect);
где SrcRect - часть картинки размером с ItemRect, с учетом прокрутки
← →
webpauk © (2007-12-21 13:37) [4]
> > clickmaker © (21.12.07 13:23) [1]
>
> listbox для примера.
> clickmaker © (21.12.07 13:30) [3]
рисовать буду не только на listbox
← →
webpauk © (2007-12-21 13:40) [5]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ImgList;
type
TForm1 = class(TForm)
ListBox1: TListBox;
ImageList1: TImageList;
procedure FormCreate(Sender: TObject);
private
oldwndproc: TWndMethod;
procedure NewWndProc(var Msg: TMessage);
protected
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
oldwndproc:=ListBox1.WindowProc;
ListBox1.WindowProc:=NewWndProc;
end;
procedure TForm1.NewWndProc(var Msg: TMessage);
var
fCanvas: TCanvas;
fIcon: TIcon;
begin
oldwndproc(Msg);
case msg.Msg of
WM_PAINT:
begin
fCanvas:=TCanvas.Create;
fCanvas.Handle:=GetWindowDC(ListBox1.Handle);
fIcon:=TIcon.Create;
try
ImageList1.GetIcon(0, fIcon);
fCanvas.Draw(0, 0, fIcon);
finally
fIcon.Free;
end;
end;
end;
end;
end.
вроде получилось
тока при Click на элементе - рисунок затирается
← →
webpauk © (2007-12-21 14:10) [6]и как сделать иконку полупрозрачной?
Страницы: 1 вся ветка
Текущий архив: 2008.01.20;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.061 c