如何造出象 office2000,dw4,foxmail3.11这样的多窗口程序? (300分)

  • 主题发起人 主题发起人 hawy
  • 开始时间 开始时间
H

hawy

Unregistered / Unconfirmed
GUEST, unregistred user!
就象office2000,dw4,foxmail3.11每打开一个新文件,就打开一个新窗口,这个新窗口在
任务栏上有显示,但又与原窗口是同一进程(我估计,应为按ctrl+Alt+Del只有一项,
不象ie,开多少窗口,就有多少项)。这究竟是MDI还是SDI?
我用的是BCB5.0,无论是MDI还是SDI? 一个project在任务栏只有一项,如果非主窗口,按
最小键,他们都只会缩小到主窗口的左下方,请帮忙解决,谢谢。
 
1.Word 和Excel 2000是MDI, dw4是新开窗口 , foxmail3.11是SDI
办法多多,殊途同归!

2.第2个问题,请看以下文字:

如何使 MDIChildForm正常关闭 ?
为何我用 Delphi 写的 MDI Child Window 无法 Close ? 请各位先进指教一下,
是否我那个 Property 设错了 ?

请在 MDI Child 的 OnClose() 事件中加入这列代码?

Action := caFree;
例如:
procedure TFrom2.FormClose(Sender: TObject;var Action: TCloseAction);
begin
Action := caFree;
end;

BCB中你应该知道怎么做了吧!





 
在vfp6.0中好像很容易就实现了,就是把一个Form的显示位置设置为:作为顶端窗口
难道在delphi bcb中就很难吗?
 
你好像理解错我的问题了,其实只有一个问题,怎么说好?
就是在bcb中,在同一程序内,无论开多少窗口,在任务栏上只有一项,
我想开多少个窗口,在任务栏上就有多少项,怎么办?
 
怎么没有人回答,我发现现在的软件大多喜欢这样做,而且十分合理,再加100分如何?
 
或者哪位高手说明这在delphi bcb 是不可能的,我也给分。
 
type
TForm2 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
procedure CreateParams(var Params: TCreateParams); override;
end;

implementation

procedure TForm2.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
end;

 
这种功能在VB只是设置一个属性(ShowInTaskBar)而已,
delphi, BCB怎么可能会做不到?这是很简单的事情!找个控件就搞定.
程序员大本营光盘里有,去买一张吧。
网上这种控件很多,要不要我给寄一个?

 
ok了,就象kucio的就可以了。我说要给400分的,怎么才能把那100分送出?

整理后的BCB代码如下:
<.h>
class TForm2 : public TForm
{
__published: // IDE-managed Components
private: // User declarations
public: // User declarations
__fastcall TForm2(TComponent* Owner);
//------------------
void __fastcall CreateParams(TCreateParams &amp;Params);
//-----------------
};

<.cpp>

void __fastcall TForm2::CreateParams(TCreateParams &amp;Params)
{
TForm::CreateParams(Params) ;
Params.ExStyle=Params.ExStyle+WS_EX_APPWINDOW;
}
 
多人接受答案了。
 
呵呵,你再开个100分的贴子,让我去取分就可以了
 
后退
顶部