Главная страница
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.02 c
14-15898
Kotka
2003-01-20 14:16
2003.02.06
Стоит посмотреть!


3-15460
Kurt_
2003-01-17 18:51
2003.02.06
Люди! можно ли в гриде как то заголовки увеличивать по толщине?


7-15957
maximus49
2002-12-02 08:04
2003.02.06
Как спрятоть кнопку формы на TaskBar?


14-15840
Driverrr
2003-01-18 21:58
2003.02.06
Че с моей XP?


14-15880
VID
2003-01-19 22:14
2003.02.06
Как правильно подключать устройства к IDE-шлейфу ?