我正在尝试创建具有WS_EX_APPWINDOW样式的表单,但是此表单调用的是模态表单。
所以我有以下结构:
| MainForm
|_FormEX_APPWINDOW (Called by MainForm)
|_FormModal (Called by FormEX_APPWINDOW)
通过这种方式,MainForm和FormEX_APPWINDOW对于用户而言似乎具有不同的可执行性,因为在任务栏上出现了两个窗口。
正是我想要和需要的这种效果。因为用户必须能够“同时”与两种形式进行交互。也就是说,可以在FormEX_APPWINDOW完成处理的同时在FormEX_APPWINDOW中保留一些处理内容,返回MainForm并进行新注册。
但是,如果FormEX_APPWINDOW调用辅助表格作为模式。在MainForm中打开模态,并最小化FormEX_APPWINDOW直到模态关闭。
我该如何解决?
MainForm调用FormEX_APPWINDOW
procedure TMainForm.Button1Click(Sender: TObject);
begin
if not Assigned(FFormEX_APPWINDOW) then
FFormEX_APPWINDOW := TFormEX_APPWINDOW.Create(Self);
FFormEX_APPWINDOW.Show;
end;
创建FormEX_APPWINDOW的参数
procedure TFormEX_APPWINDOW.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
Params.WndParent := 0;
end;
FormEX_APPWINDOW调用模式
procedure TFormEX_APPWINDOW.MenuItem1Click(Sender: TObject);
begin
if not Assigned(FormModal) then
FormModal:= TFormModal.Create(Self);
FormModal.ShowModal;
end;
注意:使用WindowState = wsMaximized打开MainForm和FormEX_APPWINDOW。使用WindowState = wsNormal打开FormModal。