当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++ Builder教程

动态创建窗体对象

    创建窗体需要消耗系统的内存,并且消耗程序的运行时间。如果程序中用到的窗体数量较多,而这些窗体都要在程序运行前被自动创建,那么在程序主界面显示之前便会有很长的等待时间,而由于此时程序正在创建所有这些窗体,会耗费系统大量的内存,若严重的话,程序根本无法运行,因此系统会提示用户“系统资源已经耗尽,请关闭一些其他正在运行的程序”。所以,让应用程序自动来创建所有的窗体实在不是一个好方法,这时,就需要用到动态创建窗体的方法。


    所谓动态创建窗体,就是当用到窗体的时候才创建窗体,当窗体用完之后马上释放。这样,应用程序就不会占用太多的内存。选择“PrpjiectIOptions菜单命令,这时系统将弹出“Prpiect Options”对话框,在该对话框中可以对工程进行一些设置。其中单击“Fotms”
标签就可进行动态创建窗体。


    许多软件都漂亮的启动画面,如C++Builder、Microsoft Office等。这种启动画面只在程序启动时出现一次,显示一些精美的图案作为软件的象征,并且在有些软件的漫长启动过程中给用户一些耐心。下面以创建启动画面为例讲述动态创建窗体的方法,但是这些代码是放在WinMain()函数中。


    在test.工程中添加一个新的窗体StartForm,并用StartPage名称保存。
    设计StartForm,可以添加一些图片、动画或图像,还可以写上软件名称、开发者名字、时间等信息。
    在test.cpp文件中添加如下的代码:
    #incluade “Startpage.h”    //(1)
    WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int)
    {
    try
    (
    StartF0rm:new TstartF0rm(Application);//(2)
    StartF0rm—>Show();//(3)
    StartForm—>Update();//(4)
    Sleep(1000);//(5)

    Application一>Initialize();
    Application一>CreateForm( classid(TForml),&Forml);
    Application一>Run();
    Delete StartForm;//(6)
    }    .
    catch(Exception&exception)
    {
    Application一>ShowException(&exception);
    }
    return 0;
    )
    语句(1)表示包含声明StartForm的头文件。
    语句(2)创建StartForm窗体。
    语句(3)调用Show()方法显示StartForm窗体,采用的是非模态方式显示StartForm窗体。如果采用ShowModal()模态方式显示StartForm窗体,那么在显示StartFom窗体后程序不再往下执行,不符合启动画面的要求。[Page]
    语句(4)调用Update()强制刷新StartForm窗体。如果不用Update()方法,那么只有当生成StartForm窗体的函数体(即WinMain函数)执行完后,才会刷新Sm~Fonn窗体。
    语句(5)使应用程序停顿2秒,以便用户可以更好地看请启动画面。对于启动需要较长时间的软件,可以不需要这条语句。
    语句(6)的作用是在程序启动后,销毁启动画面。

相关内容
赞助商链接