• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 在VC++中利用消息制作啟動封面

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    1.用Appwizard創建一個空的SDI工程Splash; 2.導入用作啟動封面的圖片; (1)在創建的新工程Splash中,選擇ResourceView面板打開資源編輯器。右擊Splash resources,在打開的快捷菜單中選擇“Insert”命令,選擇其中的“Bitmap”選項,然后單擊“Import”按鈕
    1.用Appwizard創建一個空的SDI工程Splash;

    2.導入用作啟動封面的圖片;

    (1)在創建的新工程Splash中,選擇ResourceView面板打開資源編輯器。右擊"Splash resources",在打開的快捷菜單中選擇“Insert”命令,選擇其中的“Bitmap”選項,然后單擊“Import”按鈕,準備導入用做啟動封面的BMP圖形文件。

    (2)在ResourceView面板中,右擊剛導入的“IDB_MITMAP1”位圖資源,在打開的快捷菜單中選擇“properties”命令,將ID值改為便于理解與記憶的“ID_SPLASH”。

    3.新建一個對話框資源,在其中添加導入的位圖;

    (1)在ResourceView面板中,右擊“Dialog”資源。在打開的快捷菜單中選擇“Insert Dialog”命令,新建一個對話框資源。刪除對話框中的“OK”“Cancel”按鈕,選擇自己喜歡的對話框風格.

    (2)在對話框資源中添加一個Picture控件,打開其"Picture properties"屬性對話框.選擇"General"標簽,在"Tpye"下拉框中選擇"Bitmap"選項,在"Image"下拉框中選擇前面導入的位圖資源的ID值"IDB_SPLASH".將對話框的資源的大小調整為和Picture控件大小相同.

    (3)右擊資源編輯器,在打開的快捷菜單中選擇"ClassWizard"命令,彈出"Adding a class"對話框,為新建的對話框資源添加一個新類.在"New Class"對話框的"Name"文本框中輸入對話框類名"CsplashDlg",然后順序單擊"OK"按鈕關閉"New Class"和"ClassWizard"對話框.

    4.編寫代碼,實現啟動封面的功能;

    (1)添加一個指針成員變量"*splash".在工程工作區選擇"ClassView"面板,展開類樹,右擊"CMainFrame"類,在彈出的快捷菜單中選擇"Add Member Variable..." 命令,打開"Add Member Variable"對話框,然"Variable Type"文本框中輸入"CsplashDlg",在"Variable Name"文本框中輸入"splash".單擊"OK"按鈕關閉"Add Member Variable"對話框,在Splash.cpp文件中添加如下包含語句:#include "SplashDlg.h"

    (2) 選擇"View"下拉菜單中的"ClassWizard"命令,打開"ClassWizard"對話框.選擇"Message Maps"標簽,在"Class name"下拉框中選擇"CMainFrame"類,然后在"Messages:"列表框中選擇消息"WM_TIMER".單擊"Add Function"按鈕添加"OnTimer"函數.

    (3)雙擊"Member Function"列表框中的"OnTimer"函數,編輯該函數.函數清單如下:

    void CMainFrame::OnTimer(UINT nIDEvent)
    {
    if (nIDEvent == 1)
    {if (splash->IsWindowVisible())
    {//啟動封面設置為當前活動窗口;
    splash->SetActiveWindow();
    splash->UpdateWindow();
    //啟動封面停留時間;
    Sleep(2000);
    splash->SendMessage(WM_CLOSE);
    }
    else
    {//應用程序窗口設置為當前活動窗口;
    SetActiveWindow();
    //清除WM_TIMER事件;
    KillTimer(1);
    }
    }
    //CFrameWnd::OnTimer(nIDEvent);
    }

    (4)在CMainFrame類的OnCreate函數中添加SetTimer函數,并添加顯示啟動封面的程序代碼.修改后的OnCreate函數清單如下:

    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
    //開始顯示啟動封面;
    SetTimer(1,5,NULL);//添加ID號為1 的WM_TIMER事件,響應頻率不宜過大;
    splash = new CSplashDlg();
    //可以添加播放WAV聲音的代碼;
    //sndPlaySound("welcome.wav",SND_ASYNC);
    //PlaySound("welcome.wav",NULL,SND_ASYNC);

    splash->Create(IDD_DIALOG1);
    splash->ShowWindow(SW_SHOW);
    splash->UpdateWindow();

    if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
    return -1;

    if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
    | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
    !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
    {
    TRACE0("Failed to create toolbar\n");
    return -1; // fail to create
    }

    if (!m_wndStatusBar.Create(this) ||
    !m_wndStatusBar.SetIndicators(indicators,
    sizeof(indicators)/sizeof(UINT)))
    {
    TRACE0("Failed to create status bar\n");
    return -1; // fail to create
    }

    // TODO: Delete these three lines if you don't want the toolbar to
    // be dockable
    m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
    EnableDocking(CBRS_ALIGN_ANY);
    DockControlBar(&m_wndToolBar);

    //應用程序窗口居中顯示;
    CenterWindow();

    return 0;
    }

    編譯,鏈接后運行應用程序,顯示添加的啟動封面.(該程序在VC++ 6.0 中以成功的通過) 

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>