• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Benjamin

            靜以修身,儉以養(yǎng)德,非澹薄無(wú)以明志,非寧?kù)o無(wú)以致遠(yuǎn)。
            隨筆 - 397, 文章 - 0, 評(píng)論 - 196, 引用 - 0
            數(shù)據(jù)加載中……

            VC位圖的特效

            位圖的顯示,大家都比較熟悉,網(wǎng)上介紹的也比較多。通過(guò)位圖加載時(shí)的某些參數(shù)的變化,可以達(dá)到一些特效效果,如雨滴、百葉窗效果等。
            其實(shí)現(xiàn)途徑主要是利用雙緩沖加載位圖和BitBlt這個(gè)函數(shù)參數(shù)的變化,這個(gè)方法在EVC和VC的各個(gè)平臺(tái)都可以應(yīng)用,具有通用性。
            下面是代碼演示,注意這段代碼可以單獨(dú)封裝起來(lái)。


            CDC memdc; 
            CBitmap m_bitmap;
            int width;            // 位圖的寬度
            int height;           //位圖的高度

            //得到位圖
            m_bitmap.LoadBitmap(IDB_BITMAP2);

            //獲得繪圖環(huán)境資源
            CDC 
            *pDC = new CClientDC(this);
            if(!memdc.GetSafeHdc())
            {
                memdc.CreateCompatibleDC(pDC);
                memdc.SelectObject(
            &m_bitmap);
            }
            //獲取位圖大小信息
            BITMAP bm;
            m_bitmap.GetBitmap(
            &bm);
            width
            =bm.bmWidth;
            height
            =bm.bmHeight;

            pDC
            ->Rectangle(0,0,width,height);


            //水平向左掃描
            for(int i=0;i<width;i++)
            {
                pDC
            ->BitBlt(i,0,1,height,&memdc,i,0,SRCCOPY);
                Sleep(
            1);
            }

            //水平向右掃描
            for(int i=width-1;i>=0;i--)
            {
              pDC
            ->BitBlt(i,0,1,height,&memdc,i,0,SRCCOPY);
              Sleep(
            1);
            }

            //水平百葉窗
            //每條20象素寬
            int num=width/20;
            for(int i=0;i<20;i++)
            {
            //分別掃描每條
                
            for(int j=0;j<num+1;j++)
                {
                pDC
            ->BitBlt(j*20+i,0,1,height,&memdc,j*20+i,0,SRCCOPY);
                Sleep(
            1);
                
                }
            Sleep(
            1);
            }

            //垂直百葉窗
            int num=height/20;
            for(int i=0;i<20;i++)
            {
                
            //分別掃描每條
                
            for(int j=0;j<num+1;j++)
                {
                pDC
            ->BitBlt(0,j*20+i,width,1,&memdc,0,j*20+i,SRCCOPY);
                Sleep(
            1);
                }
            Sleep(
            1);
            }
                      

            //雨滴效果
            {
            for(int i=height-1;i>=0;i--)
              {
              
            for(int j=0;j<i;j++)
              {
              pDC
            ->BitBlt(0,j,width,1,&memdc,0,i,SRCCOPY);
              Sleep(
            1);
              }
              Sleep(
            1);
            }


            m_bitmap.DeleteObject();
            memdc.DeleteDC();
            delete pDC;

            如果要實(shí)現(xiàn)從右向左的擠壓特殊效果,必須要用定時(shí)器來(lái)實(shí)現(xiàn)。下面是定時(shí)器中的具體實(shí)現(xiàn)代碼
            Bimp_width是位圖的寬,Bimp_high是位圖的高。m_memdc是位圖資源設(shè)備,在位圖加載時(shí)獲取,可參照第一部分的代碼。
            CDC *pDC = new CClientDC(this);

            pDC
            ->BitBlt(00, Bimp_width - m_nLeftPos, Bimp_high, &m_memdc, m_nLeftPos, 0, SRCCOPY);
            pDC
            ->BitBlt(Bimp_width - m_nLeftPos, 0, m_nLeftPos, Bimp_high, &m_memdc, 00, SRCCOPY);

            m_nLeftPos 
            += 5;//步長(zhǎng)
            if(m_nLeftPos >= Bimp_width)
            {
                m_nLeftPos 
            = 0;
            }
            else
            {
                SetTimer(Event_Image, 
            40NULL);
            }
            delete pDC;

            posted on 2008-04-18 15:25 Benjamin 閱讀(1025) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): VC

            波多野结衣久久| 精产国品久久一二三产区区别| 久久久久无码精品国产| 久久人人爽人人爽人人AV| 性欧美大战久久久久久久久| 国内精品久久久久国产盗摄| 色狠狠久久AV五月综合| 精品一区二区久久久久久久网站| 久久九九久精品国产免费直播| 久久精品国产99久久久| 国产精品激情综合久久| 99麻豆久久久国产精品免费| 伊人久久大香线焦AV综合影院| 久久精品人人做人人妻人人玩| 久久九九久精品国产| 久久久久久伊人高潮影院| 嫩草伊人久久精品少妇AV| 久久精品二区| 99久久无码一区人妻a黑| 久久精品国产亚洲av水果派| 51久久夜色精品国产| 国产农村妇女毛片精品久久| 伊人久久综合成人网| 欧美国产精品久久高清| 久久伊人亚洲AV无码网站| 国产精品对白刺激久久久| 久久综合一区二区无码| 久久精品免费观看| 久久亚洲精品人成综合网| 久久国产免费直播| 久久综合鬼色88久久精品综合自在自线噜噜| 99久久综合狠狠综合久久| 少妇精品久久久一区二区三区| 99久久做夜夜爱天天做精品| 久久久久亚洲AV无码去区首| 久久99热这里只有精品国产| 色综合久久最新中文字幕| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 无码AV中文字幕久久专区| 中文精品99久久国产| 国内精品伊人久久久久妇|