一个奇怪的问题:任务栏图标,对话框 ( 积分: 50 )

  • 主题发起人 主题发起人 wooiguo
  • 开始时间 开始时间
W

wooiguo

Unregistered / Unconfirmed
GUEST, unregistred user!
主程序动态加载BPL,BPL窗口使用CreateParams方法,打开后在任务栏单独显示图标.
现在的问题是:
1.BPL窗口弹出对话框(MessageBox)时,BPL窗口会藏到主窗口后面;
2.在MessageBox中加入Application.Handle后好一点,在关闭MessageBox时,BPL窗口仍然会藏到主窗口后面;
3.在2的基础上,在MessageBox中加入MB_SYSTEMMODAL或MB_APPLMODAL,现象同1.
怎样才能在打开对话框时BPL窗口不会藏到主窗口后面?是不是涉及窗口句柄问题?
 
已解决.
2.在MessageBox中加入Application.Handle --->Handle

想把分送出去,再提个问题:继承使用CreateParams方法的窗体, 其caption怎么赋值?
只要有大方向就送分!
 
才50分,真累

procedure TForm1.Button5Click(Sender: TObject);
begin
with TForm2.Create(self, 'f') do begin
ShowModal;
Free;
end;
end;


---------------------------------
unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm2 = class(TForm)
private

{ Private declarations }
public
{ Public declarations }
FCaption: string;
procedure CreateParams(var Params: TCreateParams);override;
constructor Create(AOwner: TComponent; ACaption: String);Reintroduce;
end;

var
Form2: TForm2;

implementation

{$R *.dfm}

constructor TForm2.Create(AOwner: TComponent; ACaption: String);
begin
FCaption := ACaption;
Inherited Create(AOwner);
end;

procedure TForm2.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.ExStyle := Params.ExStyle or WS_Ex_AppWindow;
Params.Caption := PChar(FCaption);
end;


end.
 
接受答案了.
 
在继承窗体create时:
self.caption:='...'
 
后退
顶部