![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Неактивное окно [WinXP]
kingweb © (2004-02-16 16:02:00)Хочу создать неактивное окно поверх всех окон, но с возможностью щелкнуть мышкой по кнопке в этом окне???
GrayFace (2004-02-18 05:45:00) [1]type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
procedure WMMoving(var Message: TWMMoving);message WM_Moving;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.WMMoving(var Message: TWMMoving);
var a:TRect;
begin
inherited;
a:=PRect(message.DragRect)^;
SetWindowPos(handle,0,a.Left,a.Top,a.Right-a.Left,a.Bottom-a.Top,SWP_NOZORDER);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong(Form1.Handle, GWL_EXSTYLE, GetWindowLong(Form1.Handle, GWL_EXSTYLE) or WS_EX_NOACTIVATE);
end;
end.
KingWeb (2004-02-17 14:06:00) [2]А точнее при клике по окошку, но не по кнопке на этом окошке, а если по кнопке то активным опять же остается прежнее окно, но выполняется процедура обработки на кнопке..
kingweb (2004-02-17 14:04:00) [3]А если нужно сделать так, чтобы при клике по окошку оно не обращало на это внимание и активным оставалось прежнее окно??? (грубо говоря disable-ное окно с возможностью работы с мышкой, желательно без ловушек)
GrayFace (2004-02-17 07:05:00) [4]А точнее SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE or SWP_NOOWNERZORDER);
GrayFace (2004-02-17 07:04:00) [5]SetWindowPos(handle,HWND_TOPMOST,left,top,width,height,0);