• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

        談對話框的動畫彈出與動畫消隱

        談對話框的動畫彈出與動畫消隱

        更新時間:2022-05-05 文章作者:未知 信息來源:網絡 閱讀次數:

        在Windows應用程序中,對話框是應用最廣泛也是比較難控制其風格(外表)的一類窗口。相信用過Windows 的朋友在享受其強大功能的同時,一定也為它所提供的具有立體感的界面而感嘆吧。通常情況下,對話框的彈出和消隱都是瞬時的,下面將介紹如何實現對話框的動畫彈出和消隱,增強程序的美觀性。

          請按以下步驟實現:

          第一步:生成我們的工程(基于對話框)FlashDlg,所有的選項都取默認值,在對話框上隨意添加幾個控件。

          第二步:在對話框的類頭文件中定義如下變量,如下:

        CPoint point;
        int nWidth,nHeight;
        int dx,dy;
        int dx1,dy1;

          第三步:在OnInitDialog()中添加如下代碼:

        BOOL CFlashDlgDlg::OnInitDialog()
        {
         CDialog::OnInitDialog();
         CRect dlgRect;
         GetWindowRect(dlgRect);
         CRect desktopRect;
         GetDesktopWindow()->GetWindowRect(desktopRect);
         MoveWindow(
          (desktopRect.Width() - dlgRect.Width()) / 2,
          (desktopRect.Height() - dlgRect.Height()) / 2,
           0,
           0 );
         nWidth=dlgRect.Width();
         nHeight=dlgRect.Height();
         dx=2;
         dy=4;
         dx1=2;
         dy1=2;
         SetTimer(1,10 , NULL);
         return TRUE;
        }

          第四步:添加OnTimer函數,添加如下代碼:

        void CFlashDlgDlg::OnTimer(UINT nIDEvent)
        {
        // TODO: Add your message handler code here and/or call default
        CRect dlgRect;
        GetWindowRect(dlgRect);

        CRect desktopRect;
        GetDesktopWindow()->GetWindowRect(desktopRect);


        if(nIDEvent == 1)
        {
        MoveWindow(
        (-dx+desktopRect.Width() - dlgRect.Width()) / 2,
        (-dy+desktopRect.Height() - dlgRect.Height()) / 2,
        +dx+dlgRect.Width(),
        +dy+dlgRect.Height() );

        if(dlgRect.Width() >=nWidth)
        dx=0; // do not over grow
        if(dlgRect.Height() >=nHeight)
        dy=0; // do not over grow
        if((dlgRect.Width() >=nWidth) && (dlgRect.Height() >=nHeight))
        KillTimer(1); //Stop the timer
        }


        if((dlgRect.Width() >=nWidth) && (dlgRect.Height() >=nHeight))
        KillTimer(1); //Stop the timer

        if(nIDEvent == 2)
        {
        MoveWindow((+dx+desktopRect.Width() - dlgRect.Width()) / 2,
        (+dy+desktopRect.Height() - dlgRect.Height()) / 2,
        -dx1+dlgRect.Width(),
        -dy1+dlgRect.Height() );

        if(dlgRect.Width() <= 0)
        dx1=0; // do not over grow
        if(dlgRect.Height() <= 0 )
        dy1=0; // do not over grow
        if((dlgRect.Width() <= 0 ) && (dlgRect.Height() <=0))
        {
        KillTimer(2); //Stop the timer
        CDialog::OnOK();
        }

        }

        CDialog::OnTimer(nIDEvent);
        }

          好了,對話框的動畫出現和消隱實現了,運行程序我們會發現對話框平滑的劃出,關閉程序我們會發現對話框平滑的消失。

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 亚洲精品无码不卡在线播放| 亚洲不卡在线观看| 日本激情猛烈在线看免费观看| 国产在线国偷精品产拍免费| 18gay台湾男同亚洲男同| 久久这里只精品国产免费10| 国产亚洲精品观看91在线| 99久久婷婷免费国产综合精品| 中文亚洲成a人片在线观看| 影音先锋在线免费观看| 亚洲人成网站日本片| 成人毛片免费观看视频在线| 成人亚洲国产va天堂| 日韩免费的视频在线观看香蕉| 亚洲老妈激情一区二区三区| 四虎国产精品免费永久在线| 无码乱人伦一区二区亚洲| 亚洲w码欧洲s码免费| 亚洲精品乱码久久久久久V| 永久免费bbbbbb视频| jizz免费在线观看| 亚洲VA成无码人在线观看天堂 | 永久免费无码日韩视频| 亚洲偷自拍拍综合网| 日本免费A级毛一片| 亚洲国产一区在线| 成年女人毛片免费播放视频m| 麻豆安全免费网址入口| 日本亚洲欧洲免费天堂午夜看片女人员 | 久久精品国产亚洲5555| 男人都懂www深夜免费网站| 亚洲一卡2卡4卡5卡6卡残暴在线| 在线免费观看视频你懂的| 一级毛片完整版免费播放一区| 久久精品国产亚洲夜色AV网站| 久久久久久99av无码免费网站 | 亚洲精品无码不卡| 免费高清在线爱做视频| 黄色视频在线免费观看| 亚洲一区在线观看视频| 国产乱辈通伦影片在线播放亚洲 |