益友软件工作室

加密金刚锁相关技术 → C++Builder类技术文章 → 在C++ Builder中软件封面的实现

在C++ Builder中软件封面的实现

文章作者:轶名
 

    我们经常可以看到,一些软件在程序运行完成初始化之前,会先调用一幅画面做为封面, 通常是四分之一屏幕大小,显示一下软件的名称、作者和版本等信息。下面我们用C++ Builder来实现这样的功能:

 

1· 自定义一窗体类 TSplashForm 将其设置成“透明窗口”,即 BorderIcons 下的所有选项均置成false BorderStyle=bsNoneFormStyle=fsStayOnTop Position=poScreenCenter

 

2· TSplashForm 窗体上放置一TPanel(相当于图形的镜框);

 

3· TPanel 上放置一TImage控件,调入所需要的图形;

 

4· WinMain 函数稍加修改,加入如下所示代码即可。 需要指出的是, 这段代码通过函数FindWindow 搜索内存中是否有窗口标题为“Demo 应用程序存在,若存在,则退出程序的运行。该功能可防止程 序的再次运行。在某些场合这样设计是必须的。

 

           WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

                    {

                       try

                        {

                            if(FindWindow(NULL,"Demo")!=0)

                            {

                              Application- >MessageBox ("程序已 经在运行!","警告",MB_ICONSTOP);

                              return 0;

                            }

 

                           TSplashForm *splash=new TSplashForm(Application);

 

                            splash- >Show();

 

                            splash- >Update();

 

                            Application- >Initialize();

 

                            Application- >CreateForm(__classid(TForm1), &Form1);

 

                            splash- >Close();

 

                            delete splash;

 

                            Application- >Run();

 

                        }

 

                        catch (Exception &exception)

 

                        {

 

                            Application- >ShowException(&exception);

 

                        }

 

                        return 0;

 

                    }

 
 

特别申明

本栏目的文章都是本人从网上搜集而来,仅供大家学习研究之用,请不要用于商业目的!其中署名“佚名”的,意思是作者不详。如果某些文章未署你的名字,请来信告知,我会补上的。如果你认为某些文章侵犯了你的正当权宜,也请来信,我会将它删除。