子窗体显示在任务栏时,
procedure Tfrm_SendSmartMsg.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.WndParent := 0;
end;
这时子窗体会在任务栏有单独的按钮,如果这时这个子窗体上又要加一个弹出窗体,如果是普通窗体会把整个应用程序激活,而导致这个子窗体跑到后面去。
把下面一句加到这个弹窗中可解决。
procedure Tfrm_MonthCalender.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.ExStyle := Params.ExStyle or WS_EX_NOACTIVATE; //不会获取焦点
Params.WndParent := GetDesktopWindow; //不会激活应用程序,但会在任务栏显示
Params.Style := Params.Style or WS_POPUP; //加了这一句后不会在任务栏显示
end;