Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];

Вниз

Окно с прозрачной областью   Найти похожие ветки 

 
BFG9k ©   (2005-08-11 15:28) [0]

На изображении нужно нарисовать прямоугольную рамку, которую можно перемещать, а также изменять ее размеры мышью. Думаю, что это должно быть окно (например форма) с прозрачной областью. Не исключаю другие варианты, главное - результат (быстро и без мерцания).


 
Kolan ©   (2005-08-11 15:36) [1]

В посте не видно вопроса.

PS D2, D3, D4, D5, D6, D7, Win95/98, WinME, NT4, Win2k, WinXP
Солидный наборчик.


 
BFG9k ©   (2005-08-11 16:10) [2]

Kolan:
Да мне нужно, чтобы работало и под Win98. Наборчик нормальный, я всегда так делаю, если речь не идет о чем-нибудь вроде ValueListEditor"а или компонентов Indy, которых нет в ранних версиях.

Проблему решил сам. BEW_SIZE,BEW_COLOR - толщина и цвет рамки.


procedure TForm4.FormResize(Sender: TObject);
var Rgn,HoleRgn:HRGN;
begin
  Rgn:=CreateRectRgn(0,0,Width,Height);
  HoleRgn:=CreateRectRgn(BEW_SIZE,BEW_SIZE,Width-BEW_SIZE,Height-BEW_SIZE);
  CombineRgn(Rgn,Rgn,HoleRgn,RGN_DIFF);
  SetWindowRgn(Handle,Rgn,True);
end;

procedure TForm4.WMNCPaint(var Msg:TWMNCPaint);
var DC:hDC;
 Pen,OldPen:hPen;
   OldBrush:hBrush;
   i:integer;
begin
inherited;
  DC:=GetWindowDC(Handle);
  msg.Result:=1;
  Pen:=CreatePen(PS_SOLID,1,BEW_COLOR);
  OldPen:=SelectObject(DC,Pen);
  OldBrush:=SelectObject(DC,GetStockObject(NULL_BRUSH));

  for i:=0 to BEW_SIZE-1 do
   Rectangle(DC,i,i,Width-i,Height-i);
  SelectObject(DC,OldBrush);
  SelectObject(DC,OldPen);
  DeleteObject(Pen);
  ReleaseDC(Handle,Canvas.Handle);
end;




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

Форум: "WinAPI";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.02 c
8-1116314243
Ш-К
2005-05-17 11:17
2005.10.09
"Неактивная" пиктограмма


8-1116687318
andrew_john
2005-05-21 18:55
2005.10.09
Использование компонентов TImage для построения слоев


2-1125044782
magnus
2005-08-26 12:26
2005.10.09
работа с Word


1-1127242434
Pasha L
2005-09-20 22:53
2005.10.09
компилятор Дельфи


14-1125337171
Rem
2005-08-29 21:39
2005.10.09
Список стран и городов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский