一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

GDI/GDI+這些破事

 牛人的尾巴 2016-12-13

GDI/GDI+這些破事

本文是雜篇,純屬筆記,想到哪寫到那!

1、獲取像素的RGB以及填充

CPaintDC dc(m_hWnd);
COLORREF color=dc.GetPixel(0,0);
int R=GetRValue(color);
int G=GetGValue(color);
nt B=GetBValue(color);
dc.FillSolidRect(m_rcWindow,RGB(R,G,B));

2、從圖片獲取窗體Region

復制代碼
HRGN CreateRegionFromBitmap(Bitmap* bitmap, BYTE alphaValve/* = 0*/)
{
    UINT width = bitmap->GetWidth();
    UINT height = bitmap->GetHeight();

    Color color;
    HRGN hRegion = ::CreateRectRgn(0, 0, width, height);
    HRGN rgn = ::CreateRectRgn(0, 0, width, height);
    for (UINT h = 0; h < height; ++h)
    {
        for (UINT w = 0; w < width; ++w)
        {
            UINT start = w;
            while (w < width)
            {
                bitmap->GetPixel(w, h, &color);
                if (color.GetAlpha() > alphaValve)
                    break;
                ++w;
            }
            if (w > start)
            {
                ::SetRectRgn(rgn, start, h, w, h + 1);
                ::CombineRgn(hRegion, hRegion, rgn, RGN_DIFF);
            }
        }
    }
    ::DeleteObject(rgn);
    return hRegion;
}

//////////////////////////
調(diào)用:

Bitmap bitmap(_T("圖片路徑"));

HRGN m_rgn;

m_rgn=CreateRegionFromBitmap(&bitmap,254);//不取半透明圖像

復制代碼

 3、UpdateLayeredWindow

復制代碼
  Image *m_pImageBackground;

   ModifyStyleEx(0, WS_EX_LAYERED); typedef BOOL (WINAPI*UpdateLayeredWindowFunc)(HWND,HDC,POINT*,SIZE*,HDC,POINT*,COLORREF,BLENDFUNCTION*,DWORD); m_pImageBackground = Image::FromFile(_T("圖片路徑")); PAINTSTRUCT ps; HDC hdc = BeginPaint( &ps); HDC hdcMem = CreateCompatibleDC(hdc); HBITMAP hBitmap = CreateCompatibleBitmap(hdc,400,233); SelectObject(hdcMem, hBitmap); Graphics graph(hdcMem); graph.DrawImage(m_pImageBackground, 0, 0, 400, 233); HMODULE hDll = LoadLibrary(_T("user32.DLL")); UpdateLayeredWindowFunc UpdateLayeredWindow=(UpdateLayeredWindowFunc)GetProcAddress(hDll, "UpdateLayeredWindow"); int nClientWith= GetSystemMetrics(SM_CXFULLSCREEN); int nClientHeigh= GetSystemMetrics(SM_CYFULLSCREEN); int x = (nClientWith-400)/2; int y = (nClientHeigh-233)/2; POINT dstPoint = {x,y}; POINT srcPoint = {0,0}; SIZE size = {400,233}; BLENDFUNCTION m_Blend; m_Blend.BlendOp=0; m_Blend.BlendFlags=0; m_Blend.AlphaFormat=1; m_Blend.SourceConstantAlpha=255; UpdateLayeredWindow(m_hWnd,hdc,&dstPoint,&size,hdcMem,&srcPoint,0,&m_Blend,2); FreeLibrary(hDll);
復制代碼

 4、畫圖

復制代碼
CBitmap m_btm_main;

HBITMAP GetBitmapFromFile( LPCWSTR pFile )
    {
        std::auto_ptr<Bitmap> pBmp(new Bitmap(pFile));
        if(!pBmp.get())
            return NULL;
        HBITMAP hBmp = NULL;
        Color backColor = Color(255,0,0,0);   
        if(Ok!=pBmp->GetHBITMAP(backColor,&hBmp))
            return NULL;
        return hBmp;
    }
    void SetBgBmp(CString strMain)
    {
        m_btm_main.Attach(GetBitmapFromFile(strMain));
    }
    BOOL  DrawBmp( HDC hdc, CRect rect, HBITMAP hBitmap)
    {
        BITMAP bm;
        GetObject(hBitmap,sizeof(bm),(VOID*)&bm);
        INT nWidth = bm.bmWidth;
        INT nHeight = bm.bmHeight;
        CDC memdc;
        memdc.CreateCompatibleDC(hdc);
        CBitmap bitmap;
        bitmap.CreateCompatibleBitmap(hdc,nWidth,nHeight);
        memdc.SelectBitmap(hBitmap);
        
        BLENDFUNCTION bf = {0,0,255,1};

        return ::AlphaBlend(hdc,rect.left,rect.top,nWidth,nHeight,memdc,0,0,nWidth,nHeight,bf);
    
  }

調(diào)用:
 CPaintDC dc(m_hWnd);    
 DrawBmp(dc,m_rcWindow,m_btm_main);
        

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    亚洲第一区欧美日韩在线| 国产传媒欧美日韩成人精品| 亚洲一区二区三区免费的视频| 亚洲国产精品av在线观看| 欧美美女视频在线免费看| 国产传媒欧美日韩成人精品| 九九九热在线免费视频| 免费大片黄在线观看日本| 日韩av欧美中文字幕| 亚洲二区欧美一区二区| 日本一二三区不卡免费| 亚洲精品中文字幕熟女| 国产精品欧美一区二区三区不卡| 精品国产一区二区欧美| 久热久热精品视频在线观看| 91午夜少妇极品福利| 色婷婷视频在线精品免费观看| 老司机精品一区二区三区| 亚洲一区二区精品久久av| 精品精品国产自在久久高清| 日本在线高清精品人妻| 日本熟妇五十一区二区三区 | 亚洲欧美日本国产不卡| 日本在线高清精品人妻| 好吊妞视频免费在线观看| 在线观看免费无遮挡大尺度视频 | 熟女乱一区二区三区四区| 熟女体下毛荫荫黑森林自拍| 日本中文字幕在线精品| 欧美在线视频一区观看| 欧美日韩亚洲精品内裤| 好吊妞视频这里有精品| 亚洲熟女诱惑一区二区| 老司机精品福利视频在线播放 | 三级理论午夜福利在线看| 欧美人禽色视频免费看| 91欧美视频在线观看免费| 在线观看日韩欧美综合黄片| 日韩欧美一区二区久久婷婷 | 国产日韩熟女中文字幕| 国产成人人人97超碰熟女 |