• <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>
            posts - 131, comments - 12, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            MFC對話框背景貼圖bmp格式

            Posted on 2012-10-25 17:38 盛勝 閱讀(653) 評論(0)  編輯 收藏 引用
            新建一個MFC項目
            在類視圖中添加OnEraseBkgnd的消息響應函數,函數的編寫如下:
            BOOL CbackgDlg::OnEraseBkgnd(CDC* pDC)
            {
            // TODO: 在此添加消息處理程序代碼和/或調用默認值
            CDialog::OnEraseBkgnd(pDC);   
            if(!m_Bitmap.m_hObject)
            return true;
            CRect rect;
            GetClientRect(&rect);
                    //設備上下文對象的類
            CDC dc;
            //該函數創建一個與指定設備兼容的內存設備上下文環境(DC)
            dc.CreateCompatibleDC(pDC);
                    //該函數選擇一對象到指定的設備上下文環境中,該新對象替換先前的相同類型的對象
            CBitmap* pOldBitmap = dc.SelectObject(&m_Bitmap);
            int bmw, bmh ;
            BITMAP bmap;
            m_Bitmap.GetBitmap(&bmap);
            bmw = bmap.bmWidth;
            bmh = bmap.bmHeight;
            int xo=0, yo=0;
            ////////此處貼圖采用拉伸strentch//////////
            pDC->StretchBlt(xo, yo, rect.Width(),rect.Height(), &dc,
            0, 0,bmw,bmh, SRCCOPY);
            /////////////////////////////////////////
            dc.SelectObject(pOldBitmap);
            return true;
            //return CDialog::OnEraseBkgnd(pDC);
            }
            m_bitmap在頭文件中聲明 
            private:
            CBitmap m_Bitmap;
            并在窗口初始化函數OnInitDialog()中添加一句:
            m_Bitmap.LoadBitmap(IDB_BITMAP1);

            圖片為bmp格式可行,圖片為png格式不可行。其他圖片類型未測試。

            BOOL StretchBlt(HDC hdcDest, int nXOriginDest, int nYOriginDest, int nWidthDest, int nHeightDest, HDC hdcSrc, int nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc, DWORD dwRop);
            hdcDest:指向目標設備環境的句柄。
              nXOriginDest:指定目標矩形左上角的X軸坐標,按邏輯單位表示坐標。
              nYOriginDest:指定目標矩形左上角的Y軸坐標,按邏輯單位表示坐標。
              nWidthDest:指定目標矩形的寬度,按邏輯單位表示寬度。
              nHeightDest:指定目標矩形的高度,按邏輯單位表示高度。
              hdcSrc:指向源設備環境的句柄。
              nXOriginSrc:指向源矩形區域左上角的X軸坐標,按邏輯單位表示坐標。
              nYOriginSrc:指向源矩形區域左上角的Y軸坐標,按邏輯單位表示坐標。
              nWidthSrc:指定源矩形的寬度,按邏輯單位表示寬度。
              nHeightSrc:指定源矩形的高度,按邏輯單位表示高度。
              dwRop:指定要進行的光柵操作。光柵操作碼定義了系統如何在輸出操作中組合顏色,這些操作包括刷子、源位圖和目標位圖等對象。參考BitBlt可了解常用的光柵操作碼列表。
              下面列出了一些常見的光柵操作代碼: BLACKNESS:表示使用與物理調色板的索引0相關的色彩來填充目標矩形區域,(對缺省的物理調色板而言,該顏色為黑色)?!STINVERT:表示使目標矩形區域顏色取反?!ERGECOPY:表示使用布爾型的AND(與)操作符將源矩形區域的顏色與特定模式組合一起。 MERGEPAINT:通過使用布爾型的OR(或)操作符將反向的源矩形區域的顏色與目標矩形區域的顏色合并?!OTSRCCOPY:將源矩形區域顏色取反,再拷貝到目標矩形區域?!OTSRCERASE:使用布爾類型的OR(或)操作符組合源和目標矩形區域的顏色值,然后將合成的顏色取反?!ATCOPY:將特定的模式拷貝到目標位圖上?!ATPAINT:通過使用布爾OR(或)操作符將源矩形區域取反后的顏色值與特定模式的顏色合并。然后使用OR(或)操作符將該操作的結果與目標矩形區域內的顏色合并?!ATINVERT:通過使用XOR(異或)操作符將源和目標矩形區域內的顏色合并?!RCAND:通過使用AND(與)操作符來將源和目標矩形區域內的顏色合并?!RCCOPY:將源矩形區域直接拷貝到目標矩形區域?!RCERASE:通過使用AND(與)操作符將目標矩形區域顏色取反后與源矩形區域的顏色值合并?!RCINVERT:通過使用布爾型的XOR(異或)操作符將源和目標矩形區域的顏色合并?!RCPAINT:通過使用布爾型的OR(或)操作符將源和目標矩形區域的顏色合并?!HITENESS:使用與物理調色板中索引1有關的顏色填充目標矩形區域。(對于缺省物理調色板來說,這個顏色就是白色)
            日韩亚洲欧美久久久www综合网| 一本综合久久国产二区| 亚洲愉拍99热成人精品热久久| 日韩人妻无码一区二区三区久久 | 亚洲欧美久久久久9999| 麻豆精品久久久久久久99蜜桃| 久久久久免费看成人影片| 亚洲成人精品久久| 色婷婷综合久久久中文字幕| 久久久久久亚洲精品不卡| 人妻精品久久无码区| 久久中文字幕视频、最近更新| 久久久久亚洲av无码专区喷水| 青青久久精品国产免费看| 69国产成人综合久久精品| 久久影院亚洲一区| 青青草原综合久久大伊人精品| AV无码久久久久不卡蜜桃| 久久久久久毛片免费看| 国产精品毛片久久久久久久| 久久夜色精品国产噜噜亚洲a | 亚洲国产精品无码久久久蜜芽 | 久久久久久精品免费免费自慰| 999久久久国产精品| 狠狠色婷婷久久一区二区三区 | 亚洲午夜久久影院| 97热久久免费频精品99| 色欲久久久天天天综合网| 久久伊人色| 伊人久久大香线蕉综合网站| Xx性欧美肥妇精品久久久久久| 国产国产成人精品久久| 日韩精品久久久肉伦网站| 亚洲日本va中文字幕久久| 久久精品极品盛宴观看| 狠狠色丁香婷婷久久综合| 伊人久久成人成综合网222| 亚洲国产成人精品无码久久久久久综合| 国产精品九九久久免费视频| 亚洲国产精品热久久| 亚洲综合久久综合激情久久|