資源簡介
使用UpdateLayeredWindow函數實現透明窗口。

代碼片段和文件信息
#include?“StdAfx.h“
#include?“ImageEx.h“
//////////////////////////////////////////////////////////////////////////////////
//構造函數
CImageEx::CImageEx()
{
::SetRect(&m_rcNinePart0000);
return;
}
//析構函數
CImageEx::~CImageEx()
{
//銷毀圖片
DestroyImage();?
return;
}
//銷毀圖片
?bool?CImageEx::DestroyImage()
?{
Destroy();
? return?true;
?}
//加載圖片
bool?CImageEx::LoadImage(LPCTSTR?pszFileName)
{
HRESULT?hr?=?CImage::Load(pszFileName);
if?(hr?==?S_OK)
{
return?SetAlphaBit();
}
else
{
return?FALSE;
}
}
//加載圖片
bool?CImageEx::LoadImage(HINSTANCE?hInstance?LPCTSTR?pszResourceNameLPCTSTR?pszResourceType/*=TEXT(“IMAGE“)*/)
{
//查找資源
HRSRC?hResource=FindResource(hInstancepszResourceNamepszResourceType);
if?(hResource==NULL)?return?false;
//讀取資源
DWORD?dwImageSize=SizeofResource(hInstancehResource);
LPVOID?pImageBuffer=LoadResource(hInstancehResource);
//創建數據
IStream?*?pIStream=NULL;
if?(CreateStreamOnHGlobal(NULLTRUE&pIStream)!=S_OK)
{
ASSERT(FALSE);
return?false;
}
//寫入數據
pIStream->Write(pImageBufferdwImageSizeNULL);
HRESULT?hr?=?CImage::Load(pIStream);
? //釋放資源
? SafeRelease(pIStream);
if?(hr?==?S_OK)
{
return?SetAlphaBit();
}
else
{
return?FALSE;
}
}
//繪畫圖像
BOOL?CImageEx::DrawImage(CDC?*?pDC?INT?nXPos?INT?nYPos)
{
pDC->SetStretchBltMode(HALFTONE);
return?CImage::Draw(pDC->GetSafeHdc()nXPosnYPos);
}
//繪畫圖像
BOOL?CImageEx::DrawImage(?CDC?*?pDC?INT?nXPos?INT?nYPos?INT?nDestWidth?INT?nDestHeight?)
{
pDC->SetStretchBltMode(HALFTONE);
return?CImage::Draw(pDC->GetSafeHdc()nXPosnYPosnDestWidthnDestHeight);
}
//繪畫圖像
BOOL?CImageEx::DrawImage(?CDC?*?pDC?RECT?&rc?)
{
pDC->SetStretchBltMode(HALFTONE);
return?CImage::Draw(pDC->GetSafeHdc()rc);
}
//繪畫圖像
BOOL?CImageEx::DrawImage(CDC?*?pDC?INT?nXDest?INT?nYDest?INT?nDestWidth?INT?nDestHeight?INT?nXScr?INT?nYSrc)
{
pDC->SetStretchBltMode(HALFTONE);
return?CImage::Draw(pDC->GetSafeHdc()nXDestnYDestnDestWidthnDestHeightnXScrnYSrcnDestWidthnDestHeight);
}
//繪畫圖像
BOOL?CImageEx::DrawImage(CDC?*?pDC?INT?nXDest?INT?nYDest?INT?nDestWidth?INT?nDestHeight?INT?nXScr?INT?nYSrc?INT?nSrcWidth?INT?nSrcHeight)
{
pDC->SetStretchBltMode(HALFTONE);
if(?nSrcWidth?==?0?||?nSrcHeight?==?0?)?return?FALSE;
return?CImage::Draw(pDC->GetSafeHdc()nXDestnYDestnDestWidthnDestHeightnXScrnYSrcnSrcWidthnSrcHeight);
}
bool?CImageEx::Draw(?CDC?*?pDC?INT?x?INT?y?INT?cx?INT?cyINT?nLeftINT?nTopINT?nRightINT?nBottom?)
{
int?cxImage?=?GetWidth();
int?cyImage?=?GetHeight();
//?左上
{
RECT?rcDest?=?{x?y?x+nLeft?y+nTop};
RECT?rcSrc?=?{0?0?nLeft?nTop};
if?(!::IsRectEmpty(&rcDest)?&&?!::IsRectEmpty(&rcSrc))
DrawImage(pDCrcDest.left?rcDest.top?rcDest.right-rcDest.left?rcDest.bottom-rcDest.top?
rcSrc.left?rcSrc.toprcSrc.right-rcSrc.left?rcSrc.bottom-rcSrc.top);
}
//?左邊
{
RECT?r
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????9255??2013-11-06?11:01??la
?????文件???????1776??2014-01-12?21:43??la
?????文件???????1744??2014-01-12?16:24??la
?????文件????????487??2014-01-12?16:24??la
?????文件???????4259??2014-01-12?16:25??la
?????文件???????5555??2014-01-12?16:51??la
?????文件???????3822??2014-01-14?11:12??la
?????文件????????661??2014-01-14?11:11??la
?????文件??????67777??2007-11-28?16:21??la
?????文件????????369??2014-01-12?16:24??la
?????文件????????465??2014-01-12?17:26??la
?????文件????????146??2014-01-12?16:24??la
?????文件???????2258??2014-01-12?16:58??la
?????文件???????1030??2014-01-12?16:24??la
?????文件????????905??2014-01-12?16:24??la
????..A..H.?????23552??2014-01-14?11:13??la
?????文件?????179101??2014-01-14?11:03??la
?????目錄??????????0??2014-01-14?11:13??la
?????目錄??????????0??2014-01-14?11:13??la
?????目錄??????????0??2014-01-14?11:13??la
-----------?---------??----------?-----??----
???????????????303162????????????????????20
- 上一篇:電子工藝實習報告收音機的制作
- 下一篇:QT vs2013編譯 x64 patch
評論
共有 條評論