主题:请教一个MDI问题,回贴就加分
我新建了一个工程,将窗体Form1的FormStyle属性设置为fsMDIForm。然后在窗体Form1上加入一MainMenu组件,打开菜单编辑器,加入如下几个菜单项。
文件(File)
.....新建(New)
.....关闭(CLOSE)
.....关闭所有子窗口(CloseAll)
.....-(N1)
.....退出(Exit )
窗口(window)
.....层叠(CASCADE)
.....平铺(TILE)
.....排列(ARRANGEICONS)
实现过程:将窗体Form1的WindowMenu属性设置成Window菜单项,这样所有打开的子窗体都会在这个菜单中列出。
选择File菜单中的New Form,加入一新窗体,将它的FormStyle属性设置为fsMDIChild,Name属性设置为MDIClientForm.
创建窗体Form1中各菜单项的OnClick事件响应函数,并加入如下所示的代码:
void _fastcall TForm1::NewClick(TObject *sender)
{
TMDIClientForm* clientForm;
clientForm=new TMDIClientForm(Application);
clientForm->caption="未命名"+IntToStr(MDIChildCount);
}
//---------------------------------------------------------------------
void _fastcall TForm1::CLOSEClick(TObject *sender)
{
if(ActiveMDIChild!=NULL)
ActiveMDIChild->Close();
}
//-------------------------------------------------------------------
void _fastcall TForm1::CloseAllClick(TObject *Sender)
{
int i;
for(i=0;i<MDIChildCount;i++)
MDIChildren[i]->Close();
}
//---------------------------------------------------------------------
void _fastcall TForm1::CASCADEClick(TObject *sender)
{
Cascade();
}
//--------------------------------------------------------------------
void _fastcall TForm1::TILEClick(TObject *sender)
{
Tile();
}
//---------------------------------------------------------------------
void _fastcall TForm1::ARRANGEICONSClick(TObject *sender)
{
ArrangeIcons();
}
//-------------------------------------------------------------------
void _fastcall TForm::ExitClick(TObject *sender)
{
Close();
}
//---------------------------------------------------------------------
创建窗体MDIClientForm的onClose事件响应函数,在其中加入如下所示的代码,这样才能关闭子窗体。
//--------------------------------------------------------------------
void _fastcall TMDIClientForm::FormClose(TObject *sender,
TCloseAction &Action)
{
Action=caFree;
}
//--------------------------------------------------------------------
编译程序
出现错误
E2451 Undefined symbol 'TMDIClientForm'
E2451 Undefined symbol 'ClientForm'
E2303 Type name expected
E2379 Statement missing
请问各路高手应该怎么办?
文件(File)
.....新建(New)
.....关闭(CLOSE)
.....关闭所有子窗口(CloseAll)
.....-(N1)
.....退出(Exit )
窗口(window)
.....层叠(CASCADE)
.....平铺(TILE)
.....排列(ARRANGEICONS)
实现过程:将窗体Form1的WindowMenu属性设置成Window菜单项,这样所有打开的子窗体都会在这个菜单中列出。
选择File菜单中的New Form,加入一新窗体,将它的FormStyle属性设置为fsMDIChild,Name属性设置为MDIClientForm.
创建窗体Form1中各菜单项的OnClick事件响应函数,并加入如下所示的代码:
void _fastcall TForm1::NewClick(TObject *sender)
{
TMDIClientForm* clientForm;
clientForm=new TMDIClientForm(Application);
clientForm->caption="未命名"+IntToStr(MDIChildCount);
}
//---------------------------------------------------------------------
void _fastcall TForm1::CLOSEClick(TObject *sender)
{
if(ActiveMDIChild!=NULL)
ActiveMDIChild->Close();
}
//-------------------------------------------------------------------
void _fastcall TForm1::CloseAllClick(TObject *Sender)
{
int i;
for(i=0;i<MDIChildCount;i++)
MDIChildren[i]->Close();
}
//---------------------------------------------------------------------
void _fastcall TForm1::CASCADEClick(TObject *sender)
{
Cascade();
}
//--------------------------------------------------------------------
void _fastcall TForm1::TILEClick(TObject *sender)
{
Tile();
}
//---------------------------------------------------------------------
void _fastcall TForm1::ARRANGEICONSClick(TObject *sender)
{
ArrangeIcons();
}
//-------------------------------------------------------------------
void _fastcall TForm::ExitClick(TObject *sender)
{
Close();
}
//---------------------------------------------------------------------
创建窗体MDIClientForm的onClose事件响应函数,在其中加入如下所示的代码,这样才能关闭子窗体。
//--------------------------------------------------------------------
void _fastcall TMDIClientForm::FormClose(TObject *sender,
TCloseAction &Action)
{
Action=caFree;
}
//--------------------------------------------------------------------
编译程序
出现错误
E2451 Undefined symbol 'TMDIClientForm'
E2451 Undefined symbol 'ClientForm'
E2303 Type name expected
E2379 Statement missing
请问各路高手应该怎么办?