Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.06;
Скачать: CL | DM;

Вниз

BitmapToRgn?   Найти похожие ветки 

 
Шишкин Илья ©   (2003-01-29 21:11) [0]

На sources.ru нашёл код для задания региона окна по Bitmap"у:

var
MaskBmp: TBitmap;
begin
MaskBmp := TBitmap.Create;
try
MaskBmp.LoadFromFile("FormShape.bmp");
Height := MaskBmp.Height;
Width := MaskBmp.Width;
// ОС владеет регионом, после вызова SetWindowRgn
SetWindowRgn(Self.Handle, BitmapToRgn(MaskBmp), True);
finally
MaskBmp.Free;
end;
end;


Но или меня глючит, или функции BitmapToRgn не существует.
Может кто-нибудь пролить свет на этот вопрос?


 
Mihey   (2003-01-29 21:39) [1]

Ну, такая функция глючить не должна:

procedure CropWindow( Handle: HWnd; Picture : TPicture );
var
hrgn, hrgn1 : integer;
hdc : integer;
x, y : integer;
Color : TColor;
begin
// Color := Picture.Bitmap.Canvas.Pixels[ 0, 0 ];
Color := clWhite;
hdc := GetDC( Handle );
hrgn := CreateRectRgn( 0, 0, Picture.Graphic.Width, Picture.Graphic.Height );
for x := 1 to Picture.Graphic.Width do
for y := 1 to Picture.Graphic.Height do
if Picture.Bitmap.Canvas.Pixels[ x - 1, y - 1 ] = Color then begin
hrgn1 := CreateRectRgn( x - 1, y - 1, x, y);
CombineRgn( hrgn, hrgn, hrgn1, RGN_DIFF );
DeleteObject( hrgn1 );
end;
SetWindowRgn( Handle, hrgn, true );
//DeleteObject( hrgn );
ReleaseDC( Handle, hdc);
end;

И наоборот:

procedure UncropWindow( Handle: HWnd; Picture : TPicture );
var
hrgn : integer;
hdc : integer;
begin
hdc := GetDC( Handle );
hrgn := CreateRectRgn( 0, 0, Picture.Graphic.Width , Picture.Graphic.Height );
SetWindowRgn( Handle, hrgn, true );
ReleaseDC( Handle, hdc );
end;



Страницы: 1 вся ветка

Текущий архив: 2003.02.06;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.012 c
1-15653
diks
2003-01-29 10:50
2003.02.06
Edit


9-15392
Sewix
2002-08-20 04:17
2003.02.06
Скролинг карты


14-15834
Новый на этоим форуме
2003-01-22 17:03
2003.02.06
Прелести php


3-15468
mate
2003-01-20 14:21
2003.02.06
QuickReport


1-15750
dimitriy.sd
2003-01-28 11:52
2003.02.06
Уважаемые мастера разъясните пожалуйста