Главная страница
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.022 c
3-15394
Kurt_
2003-01-19 12:08
2003.02.06
Не подскажите где достать русский хелп для EhLib?


1-15574
Kotka
2003-01-27 15:47
2003.02.06
Ресурсы


9-15380
kornoman
2002-08-12 07:09
2003.02.06
Ошибка с DelphiX


7-15947
GOD
2002-11-24 02:11
2003.02.06
Как отследить какая папка открывается и при необходимости запроси


1-15649
malkolinge
2003-01-29 13:46
2003.02.06
Функции обратного вызова и т.ж.