사용환경
WIN98, DELPHI4
고수님들 안녕하세요?
도움을 받고자 글을 올립니다.
프로그램을 최소화 시킬때는
procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
이런걸루 SC_MINIMIZE 이벤트를 발생하여 프로그램을 했는데
작업표시줄에 최소화 되어있는 프로그램을 선택했을시
SC_RESTORE 이벤트가 발생할 줄 알았는데 안되네요...
최소화된 프로그램을 다시 선택해서 복원할 때 이벤트를
발생하려면 어떻게 하나요? 고수님들 도와주세요....
메인폼을 최소화시키면 메인폼에서 WM_SYSCOMMAND가 발생하고, 어플리케이션이 최소화되지만 최소화된 어플레케이션을 리스토어 시켰을때는 메인폼에서 WM_SYSCOMMAND가 발생하는 것이 아니라 어플리케이션에서 WM_SYSCOMMAND가 발생합니다. 메인폼이 아니라 일반 폼이라면 그 폼에서 발생하지만...
아래와 같이 Application객체의 메세지를 핸들하세요...
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
protected
procedure AppMessage(var Msg: TMsg; var Handled: Boolean);
......
end;
procedure TForm1.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin
if (Msg.message = WM_SYSCOMMAND) and (Msg.wParam = SC_RESTORE) then
begin
// 여기에서 리스토어될때의 처리를 하세요...
ShowMessage('Application restored');
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage := AppMessage;
end;
^^ 항상 즐코하세요...
강동길 wrote:
> 사용환경
> WIN98, DELPHI4
>
> 고수님들 안녕하세요?
>
> 도움을 받고자 글을 올립니다.
>
> 프로그램을 최소화 시킬때는
>
> procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
>
> 이런걸루 SC_MINIMIZE 이벤트를 발생하여 프로그램을 했는데
>
> 작업표시줄에 최소화 되어있는 프로그램을 선택했을시
>
> SC_RESTORE 이벤트가 발생할 줄 알았는데 안되네요...
>
> 최소화된 프로그램을 다시 선택해서 복원할 때 이벤트를
>
> 발생하려면 어떻게 하나요? 고수님들 도와주세요....
>
>