资源简介
使用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
相关资源
- 基于MFC扩展CListCtrl子项显示图片并叠
- 黑白棋(带简单AI)
- MFC程序-碰撞的小球
-
Cme
taFileDC的使用示例 - ado数据库MFC图书管理系统vs2010
- mfc单文档窗体画线与写字
- [免费]MFC制作目录树
- MFC读三维模型obj文件
- 画图程序MFC/VC/VC CRectTracker 串行化
- MFC网络编程实例
- c 程序判断离散数学中命题公式
- MFC控件动态拖动
- MFC中OpenGL面和体的绘制以及动画效果
- c MFC 画多边形
- RSA AES DES ECC加密算法源码
- Microsoft基本类库 (MFC)(C 库)
- vc利用MFC底层开发的二维GIS管理软件,
- (MFC) 时钟日期程序
- 一个基于MFC的GridCtrl,提供类似Excel的
- 用MFC实现简单的画图功能
- MFC绘图小软件源代码(可当VC大作业用
- 基于MFC的文件目录树的对话框实现代
- VC 6.0 MFC做画图软件
- 空间后方交会MFC版,C 源代码
- 图像缩放(MFC)有详细的实现过程
- 一个mfc前端显示秒表
- 基于C 的简易FTP客户端(带源码)
- C (MFC)华容道自动求解
- VC 编程实现活动主机扫描源代码
- 在线考试系统VC (MFC)
评论
共有 条评论