最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

CISBitmap派生的VC++位圖透明類實(shí)例

 更新時間:2014年08月11日 15:00:20   投稿:shichen2014  
這篇文章主要介紹了CISBitmap派生的VC++位圖透明類,比較實(shí)用的功能,需要的朋友可以參考下

本文所述為一個由CISBitmap派生的VC++位圖透明類,可以方便實(shí)現(xiàn)BMP圖像的透明處理,主要包含兩個文件,使用時主需要將其引入到你的C++工程中即可,具體的類代碼如下:

CISBitmap.cpp文件代碼如下:

#include <stdafx.h>
#include "CISBitmap.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
CCISBitmap::CCISBitmap()
{
 m_crBlack = 0;
 m_crWhite = RGB(255,255,255);
}
CCISBitmap::~CCISBitmap()
{
}
int CCISBitmap::Width()
{
 BITMAP bm;
 GetBitmap(&bm);
 return bm.bmWidth;
}
int CCISBitmap::Height()
{
 BITMAP bm;
 GetBitmap(&bm);
 return bm.bmHeight;
}
void CCISBitmap::DrawTransparent(CDC * pDC, int x, int y, COLORREF crColour)
{
 COLORREF crOldBack = pDC->SetBkColor(m_crWhite);
 COLORREF crOldText = pDC->SetTextColor(m_crBlack);
 CDC dcImage, dcTrans;
 dcImage.CreateCompatibleDC(pDC);
 dcTrans.CreateCompatibleDC(pDC);
 CBitmap* pOldBitmapImage = dcImage.SelectObject(this);
 CBitmap bitmapTrans;
 int nWidth = Width();
 int nHeight = Height();
 bitmapTrans.CreateBitmap(nWidth, nHeight, 1, 1, NULL);
 CBitmap* pOldBitmapTrans = dcTrans.SelectObject(&bitmapTrans);
 dcImage.SetBkColor(crColour);
 dcTrans.BitBlt(0, 0, nWidth, nHeight, &dcImage, 0, 0, SRCCOPY);
 pDC->BitBlt(x, y, nWidth, nHeight, &dcImage, 0, 0, SRCINVERT);
 pDC->BitBlt(x, y, nWidth, nHeight, &dcTrans, 0, 0, SRCAND);
 pDC->BitBlt(x, y, nWidth, nHeight, &dcImage, 0, 0, SRCINVERT);
 dcImage.SelectObject(pOldBitmapImage);
 dcTrans.SelectObject(pOldBitmapTrans);
 pDC->SetBkColor(crOldBack);
 pDC->SetTextColor(crOldText);
}

CISBitmap.h文件代碼如下:

//請保存為文件名:CISBitmap.h
#if !defined(AFX_CISBITMAP_H__08BA6EB3_DB4C_11D1_8A89_0040052E2D91__INCLUDED_)
#define AFX_CISBITMAP_H__08BA6EB3_DB4C_11D1_8A89_0040052E2D91__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
class CCISBitmap : public CBitmap 
{
public:
 CCISBitmap();
 virtual ~CCISBitmap();
 int Height();
 int Width(); 
 virtual void DrawTransparent(CDC* pDC, int x, int y, COLORREF crColour); 
private:
 COLORREF m_crBlack;
 COLORREF m_crWhite;
};
#endif // !defined(AFX_CISBITMAP_H__08BA6EB3_DB4C_11D1_8A89_0040052E2D91__INCLUDED_)

感興趣的朋友可以將本文所述代碼放到自己的VC++工程文件中測試一下運(yùn)行效果,相信會對大家的VC++項(xiàng)目開發(fā)起到一定的幫助作用。

相關(guān)文章

  • 關(guān)于C++虛繼承的內(nèi)存模型問題

    關(guān)于C++虛繼承的內(nèi)存模型問題

    C++虛繼承的內(nèi)存模型是一個老生常談的話題,實(shí)現(xiàn)方法主要依賴于編譯器,本文從多個角度通過代碼詳解C++中虛繼承的內(nèi)存模型知識,感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • C++ 之 Asio 庫(全面解析)

    C++ 之 Asio 庫(全面解析)

    下面小編就為大家?guī)硪黄狢++ 之 Asio 庫(全面解析)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • 詳解如何將Spire.XLS for C++集成到C++程序中

    詳解如何將Spire.XLS for C++集成到C++程序中

    Spire.XLS for C++ 是一個 Excel 庫,供開發(fā)人員在任何類型的 C++ 應(yīng)用程序中操作 Excel 文檔(XLS、XLSX、XLSB 和 XLSM)。 本文演示了如何以兩種不同的方式將 Spire.XLS for C++ 集成到您的 C++ 應(yīng)用程序中
    2023-03-03
  • C語言數(shù)據(jù)結(jié)構(gòu)的時間復(fù)雜度和空間復(fù)雜度

    C語言數(shù)據(jù)結(jié)構(gòu)的時間復(fù)雜度和空間復(fù)雜度

    算法在編寫成可執(zhí)行程序后,運(yùn)行時需要耗費(fèi)時間資源和空間(內(nèi)存)資源 。因此衡量一個算法的好壞,一般是從時間和空間兩個維度來衡量的,即時間復(fù)雜度和空間復(fù)雜度,感興趣的同學(xué)可以參考閱讀
    2023-04-04
  • C++的繼承特性你了解嗎

    C++的繼承特性你了解嗎

    這篇文章主要為大家詳細(xì)介紹了C++的繼承特性,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C++鏈表倒序?qū)崿F(xiàn)方法

    C++鏈表倒序?qū)崿F(xiàn)方法

    這篇文章主要介紹了C++鏈表倒序?qū)崿F(xiàn)方法,是一個很經(jīng)典的C++鏈表操作實(shí)例,需要的朋友可以參考下
    2014-08-08
  • C++編程中將引用類型作為函數(shù)參數(shù)的方法指南

    C++編程中將引用類型作為函數(shù)參數(shù)的方法指南

    這篇文章主要介紹了C++編程中將引用類型作為函數(shù)參數(shù)的方法指南,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • C語言學(xué)習(xí)基礎(chǔ)知識分享

    C語言學(xué)習(xí)基礎(chǔ)知識分享

    這篇文章主要介紹了C語言學(xué)習(xí)基礎(chǔ)知識分享的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • C/C++實(shí)現(xiàn)目錄監(jiān)視器的方法詳解

    C/C++實(shí)現(xiàn)目錄監(jiān)視器的方法詳解

    這篇文章主要介紹了C/C++ 實(shí)現(xiàn)目錄監(jiān)視器的方法,然后網(wǎng)上查到的基本就有三種方法,使用FindFirstChangeNotification等系列函數(shù),使用ReadDirectoryChangesW函數(shù)和使用change journals,本文使用了第二種方式來實(shí)現(xiàn)一個目錄監(jiān)視,需要的朋友可以參考下
    2024-04-04
  • c++中c_str()的用法示例

    c++中c_str()的用法示例

    這篇文章主要介紹了c++中c_str()的用法示例,幫助大家更好的理解和學(xué)習(xí)C++,感興趣的朋友可以了解下
    2020-09-09

最新評論

福安市| 和顺县| 仁布县| 西乡县| 仁布县| 高阳县| 九江市| 腾冲县| 军事| 潞西市| 永康市| 梓潼县| 夹江县| 大足县| 佛坪县| 宜丰县| 龙陵县| 金川县| 南京市| 理塘县| 灌云县| 花莲市| 河间市| 眉山市| 克东县| 奇台县| 鹤庆县| 阳原县| 黄平县| 连南| 石柱| 民勤县| 祁东县| 景德镇市| 涟水县| 平舆县| 阳泉市| 佛冈县| 富锦市| 长垣县| 元朗区|