안녕하세요?
델파이를 시작한지 얼마 되지 않아서 서툽니다.
지금 window 바탕화면에서 주기적으로 실행되는 program을 짜고 있는데요.
목적상 focus를 갖지 않아야 하거든요.
예로 지금 워드를 사용하고 있는데 제 프로그램이 돌면 focus를 제 프로그램이 가지게 되서 워드 작업을 하던 사람이 다시 focus를 가져와야 하는 불편이 생기더군요..
어떻게 해야 !!!제 프로그램이 실행되는 순간에 focus를 기존 바탕화면에서 실행중인 application에게 바로!!! 돌려줄 수 있습니까...?
답변 기다립니다..바쁘시더라도 꼬옥...그럼 꾸우벅
> 안녕하세요?
> 델파이를 시작한지 얼마 되지 않아서 서툽니다.
> 지금 window 바탕화면에서 주기적으로 실행되는 program을 짜고 있는데요.
> 목적상 focus를 갖지 않아야 하거든요.
> 예로 지금 워드를 사용하고 있는데 제 프로그램이 돌면 focus를 제 프로그램이 가지게 되서 워드 작업을 하던 사람이 다시 focus를 가져와야 하는 불편이 생기더군요..
> 어떻게 해야 !!!제 프로그램이 실행되는 순간에 focus를 기존 바탕화면에서 실행중인 application에게 바로!!! 돌려줄 수 있습니까...?
> 답변 기다립니다..바쁘시더라도 꼬옥...그럼 꾸우벅
// Edit1, Memo1 는 그냥 올려놓은 것임
// window 가 inactive 이지만 Edit1, Memo1 에 입력은됨
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Memo1: TMemo;
private
{ Private declarations }
procedure WMActivate(var Message: TWMActivate); message WM_ACTIVATE;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMActivate(var Message: TWMActivate);
var
i: Integer;
begin
inherited;
with Self do
SetWindowPos(Handle, HWND_BOTTOM, // Z order 의 최하위
Left, Top, Width, Height,
SWP_NOACTIVATE); // window 를 activate 시키지 않음
end;
end.