現在的電子信息技術發展得很快,特別像
CPU這樣的硬件,已經進入到多核時代,運行程序的速度比以前快了很多,但人類的需求是無止境的,因此寫的程序也越來越大,越來越復雜,導致程序的初始化時,就變得比原來更加漫長。在人機交互理論里,讓人等待超過10秒的時間,心情就會變得急躁,感覺這個程序不好用。那么有什么方法解決這個問題呢?在我們的社會里,到處都有排隊等待的現象,比如讓你去銀行辦理業務,如果讓你站在那里等著,沒有任何電視或報紙看,感覺時間需要很長。這里通過看電視和報紙,讓人感覺到時間不長。其實還有一個更好的辦法,當大家在銀行排隊時,銀行的服務員應立即送上茶、可樂、冰棒等等,讓大家一邊吃著一邊等著,這樣排隊更加感覺不到時間長了。所以在我們設計程序里,也需要給用戶一些“茶、可樂、冰棒”,這就是閃屏窗口。
?
下面是閃屏窗口的類聲明。
#001?class LLSplashScreen
#002?{
#003?public:
?
構造和析構函數
#004?
?? LLSplashScreen() { };
#005?
?? virtual ~LLSplashScreen() { };
#006?
#007?
#008?
?? // Call to display the window.
?
創建一個閃屏窗口。
#009?
?? static LLSplashScreen * create();
?
顯示閃屏窗口。
#010?
?? static void show();
?
隱藏閃屏窗口。
#011?
?? static void hide();
?
讓閃屏窗口顯示新的字符串。
#012?
?? static void update(const char* string);
#013?
?
判斷閃屏窗口是否可見。
#014?
?? static bool isVisible();
#015?protected:
?
重載下面三個函數實現不同平臺的代碼。比如
WINDOWS與LINUX平臺就不一樣的。
#016?
?? // These are overridden by the platform implementation
#017?
?? virtual void showImpl() = 0;
#018?
?? virtual void updateImpl(const char* string) = 0;
#019?
?? virtual void hideImpl() = 0;
#020?
#021?
?? static BOOL sVisible;
#022?
#023?};
?
?
下面接著分析
WINDOWS平臺下的實現代碼,如下:
#001?//static
#002?void LLSplashScreen::show()
#003?{
#004?
?? if (!gSplashScreenp)
#005?
?? {
#006?#if LL_WINDOWS && !LL_MESA_HEADLESS
#007?
?????? gSplashScreenp = new LLSplashScreenWin32;
#008?#elif LL_DARWIN
#009?
?????? gSplashScreenp = new LLSplashScreenMacOSX;
#010?#endif
#011?
?????? if (gSplashScreenp)
#012?
?????? {
#013?
?????????? gSplashScreenp->showImpl();
#014?
?????? }
#015?
?? }
#016?}
?
上面實現
WINDOWS和MAC的創建窗口。在這里主要分析WINDOWS平臺的類LLSplashScreenWin32的代碼,下一次再來分析它。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
