Q&A

  • 포커스를 기존 실행중인 외부프로그램에게 돌려주려면...
안녕하세요?

델파이를 시작한지 얼마 되지 않아서 서툽니다.

지금 window 바탕화면에서 주기적으로 실행되는 program을 짜고 있는데요.

목적상 focus를 갖지 않아야 하거든요.

예로 지금 워드를 사용하고 있는데 제 프로그램이 돌면 focus를 제 프로그램이 가지게 되서 워드 작업을 하던 사람이 다시 focus를 가져와야 하는 불편이 생기더군요..

어떻게 해야 !!!제 프로그램이 실행되는 순간에 focus를 기존 바탕화면에서 실행중인 application에게 바로!!! 돌려줄 수 있습니까...?

답변 기다립니다..바쁘시더라도 꼬옥...그럼 꾸우벅

1  COMMENTS
  • Profile
    김영대 1999.10.11 18:21
    덜보이 wrote:

    > 안녕하세요?

    > 델파이를 시작한지 얼마 되지 않아서 서툽니다.

    > 지금 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.