• <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>

            山寨:不是最好的,是最適合我們的!歡迎體驗(yàn)山寨 中文版MSDN

            Blog @ Blog

            當(dāng)華美的葉片落盡,生命的脈絡(luò)才歷歷可見。 -- 聶魯達(dá)

            常用鏈接

            統(tǒng)計(jì)

            積分與排名

            BBS

            Blog

            Web

            最新評(píng)論

            關(guān)于CBitmap的使用

             

            在初始化CBitmap對(duì)象時(shí),常用Cbitmap::LoadBitmap,即如下兩種:

             

            BOOL LoadBitmap(LPCTSTR lpszRecourceName);

            BOOL LoadBitmap(UINT nIDResource);

            MSDN中的說明為:

            " 返回值調(diào)用成功時(shí)返回非零值,否則為。 

              lpszResourceName指向一個(gè)包含了位圖資源名字的字符串(該字符串以null結(jié)尾)。NIDResource指定位圖資源中資源的ID號(hào)。說明本函數(shù)從應(yīng)用的可執(zhí)行文件中加載由lpszResourceName指定名字或者由nIDResource指定的ID號(hào)標(biāo)志的位圖資源。加載的位圖被附在Cbitmap對(duì)象上。如果由lpszResourceName指定名字的對(duì)象不存在,或者沒有足夠的內(nèi)存加載位圖,函數(shù)將返回。可以調(diào)用函數(shù)CgdiObject::DeleteObject刪除由LoadBitmap加載的位圖,否則Cbitmap的析構(gòu)函數(shù)將刪除該位圖對(duì)象。警告     在刪除位圖對(duì)象之前,要保證它沒有被選到設(shè)備上下文中。在Windows3.1以及以后的版本中,增加了如下的位圖:OBM_UPARROWIORM_DNARROWIOBM_RGARROWIOBM_LFARROWI ......"

            剛開始用的時(shí)候,我直接把圖像路徑名給了 lpszRecourceName,可總是不成功.仔細(xì)檢查了程序,也沒發(fā)現(xiàn)錯(cuò)誤.可為什么呢?...CSDN一查才發(fā)現(xiàn)問題出在 lpszRecourceName. lpszRecourceName按字面意思好像是"指向資源的名稱字符串",可實(shí)際呢?卻不是一般理解的磁盤上的資源文件名,而是VC工程內(nèi)部已導(dǎo)入的資源名,所以把外部文件的名稱賦給它當(dāng)然不成功了.問題怎么解決呢?---API函數(shù)HBITMAP LoadImage("文件名");不過改函數(shù)返回的是指向Load圖片的句柄,所以需要用到CBitmapAttach方法:

             

            //直接從外部文件加載圖片

             

            HBITMAP bitmap;

            bitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),strFileName,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);

            m_backBitmap.DeleteObject();

            if(!m_backBitmap.Attach(bitmap))

            {

                 MessageBox("導(dǎo)入背景圖失敗!","提示",MB_OK);

                 return;

            }

             

            ****************************************

            void CitemView::getBitMap( CDC *pDC )

            {

                 CDC   MemDC;  

                 HBITMAP  hBmp;

                 BITMAP   bm;  

                 CBitmap  Bitmap;

                 CPoint point( 10, 10);

                 CString cStr;

             

                 //hBmp = (HBITMAP)::LoadImage(NULL,"BG.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);

                 hBmp = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),"BG.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);

                 Bitmap.DeleteObject();

                 Bitmap.Attach( hBmp );

                 Bitmap.GetObject(sizeof(BITMAP),&bm);  

                 MemDC.CreateCompatibleDC(pDC);  

                 MemDC.SelectObject(&Bitmap);  

                 pDC->BitBlt(point.x, point.y, bm.bmWidth, bm.bmHeight, &MemDC, 0, 0, SRCCOPY);  

                 MemDC.DeleteDC();

            }

             

            ***************************************************

            請問LoadBitmap( LPCTSTR lpszResourceName )lpszResourceName 是指哪個(gè)名字

             

            BOOL LoadBitmap(LPCTSTR lpszResourceName);  

            BOOL LoadBitmap(UINT nIDResource);  

            nIDResource   是指資源ID  

            lpszResourceName是指什么呢  

             

            比如:我創(chuàng)建了一個(gè)BITMAP資源IDB_BITMAP1 ;   lpszResourceName是指什么呢,是硬盤上的bitmap1.bmp嗎,如果是,以下代碼為什么是錯(cuò)的。

             

             

            CBitmap   bmp;  

            bmp.LoadBitmap("d:\\..\\res\\bitmpa1.bmp");  

            CDC   memdc;  

            BITMAP   bmstru;  

            bmp.GetBitmap(&bmstru);  

            memdc.CreateCompatibleDC(pDC);  

            memdc.SelectObject(&bmp);  

            pDC->BitBlt(0,0,bmstru.bmWidth,bmstru.bmHeight,&memdc,0,0,SRCCOPY);  

            Notepad打開*.rc文件,找到類似下面一行:  

              IDB_BITMAP   BITMAP   "res\\background.bmp"  

              改成:  

              Bitmap1   BITMAP   "res\background.bmp"  

              或者,在VC中察看位圖資源的屬性,將其ID欄內(nèi)改為"Bitmap"(注意,一定要加引號(hào))。  

              然后調(diào)用:  

              bmp.LoadBitmap("Bitmap1");  

              保證成功。  

              資源可以用一個(gè)整數(shù)來標(biāo)示,也可以用一個(gè)字符串標(biāo)示。但無論如何,這些ID都不是指位圖文件名。不要將它們混淆。

             

            posted on 2009-03-16 10:54 isabc 閱讀(2596) 評(píng)論(0)  編輯 收藏 引用 所屬分類: VC界面

            廣告信息(免費(fèi)廣告聯(lián)系)

            中文版MSDN:
            歡迎體驗(yàn)

            久久精品国产99国产精偷| 久久人人爽人人爽人人片AV东京热| 无码伊人66久久大杳蕉网站谷歌 | 亚洲AV无码久久精品狠狠爱浪潮| 思思久久好好热精品国产| 伊人久久大香线蕉亚洲五月天| 漂亮人妻被黑人久久精品| 亚洲国产天堂久久综合网站| 人人狠狠综合久久亚洲| 色婷婷综合久久久久中文| 久久se精品一区二区影院| 日日躁夜夜躁狠狠久久AV| 欧美亚洲日本久久精品| 国产精品一区二区久久国产| 人人狠狠综合久久亚洲高清| 88久久精品无码一区二区毛片| 久久亚洲AV成人无码软件| 国产激情久久久久影院小草| 亚洲精品无码久久久久久| 亚洲Av无码国产情品久久| www性久久久com| 色欲综合久久躁天天躁蜜桃| 久久久中文字幕日本| 一本大道久久a久久精品综合| 亚洲va久久久噜噜噜久久男同| 久久夜色精品国产亚洲av| 99久久亚洲综合精品网站| 久久99精品国产麻豆宅宅 | 国产毛片久久久久久国产毛片| 久久亚洲精品无码AV红樱桃| 久久久亚洲裙底偷窥综合| 亚洲?V乱码久久精品蜜桃 | 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 久久天天躁狠狠躁夜夜av浪潮| 99精品久久久久中文字幕| 性欧美丰满熟妇XXXX性久久久| 亚洲人成伊人成综合网久久久 | 久久精品国产91久久麻豆自制| 久久精品aⅴ无码中文字字幕重口| 一本久久a久久精品亚洲| 精品多毛少妇人妻AV免费久久|