Почитай про computer-based training (CBT) applications, в часности про WH_CBT. Это самый надёжный способ...16.05.03 20:25 Число просмотров: 1072 Автор: HandleX <Александр М.> Статус: The Elderman
[asm, c++, delphi]Окно за которое не спрячешся13.05.03 11:32 Автор: ASJinx Статус: Незарегистрированный пользователь Отредактировано 13.05.03 11:34 Количество правок: 1
Возможно ли сделать окно таким, чтобы другие окна при деактивации не прятались за него, а становились неактивными на его фоне? И если это можно, то как? Так же как десктоп.
[asm, c++, delphi]Окно за которое не спрячешься15.05.03 13:22 Автор: Cyril <sc> Статус: Member Отредактировано 15.05.03 13:23 Количество правок: 1
> Возможно ли сделать окно таким, чтобы другие окна при > деактивации не прятались за него, а становились неактивными > на его фоне? И если это можно, то как? Так же как десктоп. Да это возможно, для этого необходимо обрабатывать
сообщение WM_MouseActivate
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
procedure WM_MouseActivateEvent(var Message : TWMMouseActivate); message WM_MouseActivate;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{ TForm1 }
procedure TForm1.WM_MouseActivateEvent(var Message: TWMMouseActivate);
begin
Message.Result := MA_NOACTIVATE;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
WindowState := wsMaximized;
BorderStyle := bsNone;
end;
end.
Все работает, но есть траблы, например при щелчке на к.л. фигатень которая на этом окне такой вариант не проходит. Похоже придется хукериться.
И ещё - это если мышой, а если клавой (alt+tab) например, чтоб эффект был такойже?
Почитай про computer-based training (CBT) applications, в часности про WH_CBT. Это самый надёжный способ...16.05.03 20:25 Автор: HandleX <Александр М.> Статус: The Elderman
> Все работает, но есть траблы, например при щелчке на к.л. > фигатень которая на этом окне такой вариант не проходит. MA_NOACTIVATE - Does not activate the window, and does not discard the mouse message.
MA_NOACTIVATEANDEAT - Does not activate the window, but discards the mouse message.
Попробуй возвращать в качестве результата MA_NOACTIVATEANDEAT
> Похоже придется хукериться. > И ещё - это если мышой, а если клавой (alt+tab) например, > чтоб эффект был такойже? Сделай так что бы в списке задач твое приложение отсутствовало,
тогда и проблемма отпадет