青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

ListCtrl插入GIF圖片

轉載自:http://blog.csdn.net/zhaoze87/article/details/6369593

      在很多軟件的CListCtrl列表控件都能顯示Gif動態(tài)圖標,昨天我也剛好要實現(xiàn)這個功能,向同事請教后,他們發(fā)給我一個ImageEx顯示GIF的例子。我拿這個例子來研究,發(fā)現(xiàn)上面的Demo只是在窗口中顯示一個Gif表情,但是我要用的是在列表控件中顯示,拖動滾動條的時候可以顯示和隱藏GIF圖標;同時這個類為每一個要顯示GIF對象都創(chuàng)建了一個線程,如果我要顯示幾百張GIF表情的話,要創(chuàng)建幾百個線程,這簡直是不可接受的。

     于是我開始了解ImageEx顯示Gif的原理,期望可以在這個基礎上改進后能實現(xiàn)我的要求。ImageEx在創(chuàng)建對象是傳遞GIF資源ID或者是文件路徑后,然后會調用初始化函數(shù)InitAnimation(HWND hWnd, CPoint pt);傳遞一個窗口句柄和顯示位置。然后這個類讀取GIF的文件信息,得到幀數(shù)和每一幀的時間。在線程里面定時更新當前幀數(shù),同時將當前幀的圖片繪制到之前傳遞的窗口的指定位置。代碼如下:

  1: long hmWidth = GIFWIDTH;//GetWidth();
  2:   long hmHeight = GIFHEIGHT;//GetHeight();
  3: 
  4:   HDC hDC = GetDC(m_hWnd);
  5:   if (hDC)
  6:   {
  7:     HBITMAP hMemBmp = CreateCompatibleBitmap(hDC, hmWidth, hmHeight);
  8: 
  9:     HDC hMemDC = CreateCompatibleDC(hDC);
 10:     HBITMAP hOldBmp = (HBITMAP)SelectObject(hMemDC, hMemBmp);
 11: 
 12:     Rectangle(hMemDC, 0, 0, hmWidth, hmHeight);  
 13:     Graphics graphics(hMemDC);
 14:     graphics.DrawImage(this, 1, 1, hmWidth-2, hmHeight-2);
 15:     BitBlt(hDC, 0, 0, hmWidth, hmHeight, hMemDC, 0, 0, SRCCOPY);

     在我的需求里面由于滾動條的拖動,GIF的顯示位置也會變化,同時我可能還會在GIF上面繪制一些其他的圖標,如果以之前ImageEx的顯示方式,肯定會覆蓋掉我先繪制的圖標。所以我思考過后采取了一種新方案,ImageEx內部只負責更新當前的幀數(shù),然后定時刷新CListCtrl,CListCtrl在重繪的時候會取出GIF當前幀數(shù)的圖片,將其以背景圖片的方式繪制,然后在上面繪制其他圖片。

   同時為了避免創(chuàng)建一個對象就開一個線程,我增加一個ImageManager類,這個類管理所有創(chuàng)建的ImageEx對象,同時只開啟一個線程,在線程函數(shù)里面定時查詢所有的ImageEx對象,如果某個ImageEx對象需要更新到下一幀,就調用SelectActiveFrame(&pageGuid, m_nFramePosition++); 切換到下一幀,這樣就實現(xiàn)了GIF的逐幀顯示效果。代碼片段如下:

  1: //ImageManager遍歷調用更新ImageEx幀數(shù)代碼
  2: for (ImageMap::iterator iter = m_ImageList.begin(); iter != m_ImageList.end(); iter++)
  3:     {
  4:       if (iter->second != NULL)
  5:         iter->second->DrawFrameGIF();
  6:     }
  7: 
  8: //ImageEx更新當前幀數(shù)代碼 DrawFrameGIF
  9:   GUID pageGuid = FrameDimensionTime; 
 10:   SelectActiveFrame(&pageGuid, m_nFramePosition++);
 11:   
 12:   if (m_nFramePosition >= m_nFrameCount) 
 13:     m_nFramePosition = 0; 

先插一個效果圖:

由于實際要求, 對于多行插入同一個GIF,在ImageManager只創(chuàng)建了一個對象,所以顯示的GIF的動畫的動作會一樣,這樣會減小內存消耗。

先放上一個執(zhí)行文件地址:http://download.csdn.net/detail/zhaoze87/3890938

附上代碼下載地址:http://download.csdn.net/detail/zhaoze87/3891058(之前的疏忽,沒有加上Gdi+的環(huán)境)

歡迎大家多多提意見!

posted on 2013-02-27 11:39 楊粼波 閱讀(1353) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产婷婷色一区二区三区在线| 中国成人亚色综合网站| 亚洲国产精品视频| 狠狠综合久久av一区二区小说| 亚洲视频1区| 永久免费视频成人| 黄色精品一二区| 亚洲精品国产精品国自产在线 | 在线观看日韩| 亚洲国产日韩精品| 在线视频日本亚洲性| 亚洲欧美日韩一区二区在线 | 性一交一乱一区二区洋洋av| 久久av在线| 欧美激情一区二区在线| 一本高清dvd不卡在线观看| 午夜精品久久久久久久| 狂野欧美一区| 国产精品久久久久一区二区| 精品av久久707| 亚洲午夜国产一区99re久久 | 日韩一级免费观看| 校园春色综合网| 欧美第十八页| 亚洲午夜精品在线| 老司机精品视频一区二区三区| 欧美性大战xxxxx久久久| 国产自产精品| 亚洲一区二区欧美| 欧美福利一区二区三区| 亚洲欧美99| 欧美—级在线免费片| 国产亚洲欧美一区在线观看| 日韩亚洲欧美中文三级| 久久综合给合久久狠狠色| 99视频在线观看一区三区| 久久先锋影音av| 国产精品一区二区久久国产| 一级成人国产| 欧美国产日韩a欧美在线观看| 亚洲欧美春色| 欧美午夜a级限制福利片| 亚洲福利视频网| 久久久久久久久一区二区| 中日韩美女免费视频网站在线观看| 久久亚洲春色中文字幕| 国产欧美精品一区二区三区介绍| 亚洲免费精品| 欧美激情导航| 久久综合狠狠| 在线不卡a资源高清| 久久久久久久久综合| 亚洲欧美视频一区| 欧美一区二区三区久久精品茉莉花| 亚洲一区国产视频| 久久综合久久久久88| 狠狠干狠狠久久| 久久激情网站| 亚洲欧美综合国产精品一区| 国产精品超碰97尤物18| 亚洲视频在线观看网站| 亚洲精品乱码久久久久久日本蜜臀| 欧美在线91| 国产亚洲亚洲| 久久全球大尺度高清视频| 久久精品视频va| 亚洲国产精品久久人人爱蜜臀| 美女精品在线| 久久综合久久美利坚合众国| 亚洲欧洲一区二区三区在线观看| 欧美国产乱视频| 欧美黄色免费| 亚洲尤物在线| 欧美亚洲尤物久久| 欲香欲色天天天综合和网| 蜜乳av另类精品一区二区| 欧美成人网在线| 亚洲自拍啪啪| 欧美淫片网站| 91久久精品美女高潮| 亚洲另类一区二区| 国产精品久久999| 久久亚洲二区| 欧美精品在线观看| 香蕉久久国产| 久久人人爽爽爽人久久久| 日韩网站在线看片你懂的| 亚洲亚洲精品在线观看 | 欧美亚洲一区二区在线| 久久国产99| 99视频有精品| 欧美一区二区精品在线| 91久久精品久久国产性色也91| 亚洲少妇自拍| 亚洲国产精品尤物yw在线观看| 亚洲精品在线观看视频| 国产一区二区福利| 亚洲精品美女在线观看| 国产一区二区三区四区hd| 亚洲久久一区二区| 黑人巨大精品欧美一区二区小视频| 亚洲国产精品一区制服丝袜| 国产视频精品网| 亚洲精品国产拍免费91在线| 狠狠操狠狠色综合网| 一卡二卡3卡四卡高清精品视频| 狠狠色狠狠色综合人人| 99亚洲视频| 亚洲国产成人av| 午夜精品视频在线观看一区二区| 洋洋av久久久久久久一区| 久久久成人网| 欧美一区二粉嫩精品国产一线天| 亚洲韩国青草视频| 亚洲视频狠狠| 91久久精品日日躁夜夜躁欧美| 在线亚洲美日韩| 亚洲欧洲在线观看| 久久久精品免费视频| 午夜视频一区| 欧美日韩综合视频| 亚洲国产综合视频在线观看| 极品尤物久久久av免费看| 一区二区欧美日韩| 亚洲免费观看在线观看| 蜜臀av一级做a爰片久久| 久久青草久久| 国内揄拍国内精品久久| 欧美一区中文字幕| 久久久精彩视频| 国产午夜亚洲精品不卡| 亚洲男人av电影| 欧美在线free| 国产欧美精品一区二区色综合| 一区二区欧美在线| 亚洲一区二区三区在线| 欧美啪啪一区| 日韩一区二区电影网| 亚洲一区bb| 国产精品久久久久毛片软件| 亚洲午夜电影| 久久国产日本精品| 国内精品伊人久久久久av一坑| 欧美有码在线观看视频| 另类天堂视频在线观看| 亚洲第一在线视频| 久久综合色综合88| 欧美激情免费在线| 99一区二区| 欧美色网在线| 亚洲午夜精品久久久久久浪潮| 性欧美1819sex性高清| 国产日韩欧美在线观看| 欧美制服丝袜| 亚洲二区在线| 亚洲午夜在线观看视频在线| 国产精品久久久久久久久久直播 | 99国产欧美久久久精品| 欧美日韩在线视频一区二区| 一本久久综合亚洲鲁鲁五月天 | 欧美成人xxx| 亚洲国产精品福利| 欧美高清视频一区| 亚洲视频精选| 牛牛影视久久网| 一区二区av在线| 国产亚洲精品aa午夜观看| 免费在线亚洲欧美| 在线视频日韩| 蜜桃av一区二区| 亚洲午夜精品久久久久久浪潮| 国产色综合天天综合网| 欧美激情综合五月色丁香小说| 亚洲欧美日韩国产| 亚洲激情电影在线| 久久久精品一区| 一区二区三区欧美在线观看| 国产一区二区三区四区五区美女 | 99在线热播精品免费| 欧美中文字幕精品| 亚洲精品久久久久久久久久久久久| 欧美新色视频| 狼狼综合久久久久综合网| 亚洲婷婷在线| 亚洲国产日韩在线一区模特| 欧美一区影院| 亚洲视频大全| 亚洲国产裸拍裸体视频在线观看乱了中文 | 91久久久精品| 久久亚洲综合色一区二区三区| 9久re热视频在线精品| 国产亚洲一本大道中文在线| 欧美日韩久久不卡| 你懂的亚洲视频| 久久久91精品国产一区二区三区 | 日韩一区二区精品视频| 欧美α欧美αv大片| 久久精品二区亚洲w码| 亚洲小视频在线| 99精品免费网|