资源简介
使用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
相关资源
- 可以实时变化的柱状图
- PCL做界面程序代码
- 使用CAsyncSocket完成的客户端和服务端
- GDAL无缝图片拼接
- 树形可编辑listctrl
- Ntp客户端校时工具精简高效
- 鼠标光标 cur格式
- opengl绘制的三维汽车
- VC开发实现任务管理器
- CEdit控件重写类CEditList,输入自动提示
- png不规则窗口
- 仿QQ VS2010聊天程序服务器端、客户端
- VS2015开源的类CAD软件
- 基于VS2015编写的串口调试助手
- YaChangeSplit.zip
- SerialPort_VS2019.rar
- Iocomp破解版
- 微信导出图片重命名小工具
- tiny4412开发板RTP实时视频传输
- MFC 重绘CListCtrl、CTreeCtrl的滚动条
- MFC实现的简单的HTTP的POST和GET方法的类
- MFC实现的AES加解密软件(内附源代码
- MFC对话框框架,调用opencv打开摄像头
- MFC 根据分辨率自动缩放控件 图片控
- mfcdll调用方法
- 用VC(MFC)编写的学生信息管理系统源
- A星寻路算法 MFC写的动态演示程序
- MFC 非常好用的表格控件
- VS2010下的TCP客户端 MFC程序
- MFC多线程文件传输(客户端、服务器
评论
共有 条评论