- 浏览: 2031119 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (651)
- ACE (35)
- BAT (9)
- C/C++ (116)
- fast-cgi (14)
- COM (27)
- python (59)
- CGI (4)
- C# (2)
- VC (84)
- DataBase (29)
- Linux (96)
- P2P (6)
- PHP (15)
- Web (6)
- Memcached (7)
- IME输入法 (11)
- 设计模式 (2)
- 搜索引擎 (1)
- 个人情感 (4)
- 笔试/面试 (3)
- 一亩三分地 (33)
- 历史 (2)
- 地理 (1)
- 人物 (3)
- 经济 (0)
- 不仅仅是笑哦 (43)
- 小故事大道理 (2)
- http://www.bjdsmyysjk120.com/ (0)
- http://www.bjdsmyy120.com/ (0)
- 它山之石可以攻玉 (15)
- 大学生你关注些什么 (28)
- 数据恢复 (1)
最新评论
-
luokaichuang:
这个规范里还是没有让我明白当浏览器上传文件时,STDIN的消息 ...
FastCGI规范 -
effort_fan:
好文章!学习了,谢谢分享!
com技术简介 -
vcell:
有错误os.walk(strPath)返回的已经是全部的文件和 ...
通过python获取目录的大小 -
feifeigd:
feifeigd 写道注意:文章中的CPP示例第二行 #inc ...
ATL入门:利用ATL编写简单的COM组件 -
feifeigd:
注意:文章中的CPP示例第二行 #include " ...
ATL入门:利用ATL编写简单的COM组件
1.在你将要使用GDI+的工程中,完成初始化工作,将以下代码加入StdAfx.h头文件中: //加入的头文件 2.在程序初始化部分加入 //gdi+用到的两个变量 装载gdi+ 3.在程序退出部分前加入 5在Project->stting->Link->Object/libary中加入gdiplus.lib 这样你的工程就可以使用GDI+了: void CPNGDlg::OnButton1() 遗憾的是,VC6.0并不能直接使用GDI+,下面介绍一种很方便的在VC6.0中使用GDI+的方法。步骤如下: 1.将GDI+.rar将其中的Includes和Lib中的文件拷到vc目录下的Includes和Lib文件夹中; GDI+ for VC6.0 SDK下载地址: http://www.codeguru.com/code/legacy/gdi/GDIPlus.zip 2.在你将要使用GDI+的工程中,完成初始化工作: 将以下代码加入StdAfx.h头文件中: //加入的头文件 3.在程序初始化部分加入 //gdi+用到的两个变量 装载gdi+ 4在程序退出部分前加入 5在Project->stting->Link->Object/libary中加入gdiplus.lib 这样你的工程就可以使用GDI+了: void CPNGDlg::OnButton1() 直接显示就可以了, 透明是GDI+自己处理的, #define ULONG_PTR ULONG 不要再使用OleLoadPicture了,那会让你看起来很愚蠢。同样功能的函数,你看看GDI+会有几行: HRESULT ShowPic(const TCHAR* lpstrFile, HDC hDC, int X, int Y, int iWidth, int iHeight) // Create bitmap object and load image // Draw bitmap on DC 在vc6.0中使用GDI+图形函数 进来总看到一些网友提出一些关于图形处理方面的问题. 例如怎样使一个字符串透明输出,怎样放大,缩小或旋转一幅图片,或将一幅bmp图片保存为jpg格式,我总是回答使用GDI+图形函数,那么怎样使用呢? 下面是我写的一个简易教程,第一次写教程,难免有疏漏还请各位网友指正批评. GDI+图形函数,一个组在.net环境下提供的以取代GDI图形函数的类,将来会逐渐取代GDI图形函数. 如果在vc6.0中使用gdi+图形函数,那么请按以下步骤操作: 1.下载下面的rar文件将其中的Includes和Lib中的文件拷到vc目录下的Includes和Lib文件夹中. 点击下载该文件 2新建一个工程(以winsdk框架为例mfc也相同) 将以下代码加入StdAfx.h头文件中 //加入的头文件 #ifndef ULONG_PTR 3在程序初始化部分加入 //gdi+用到的两个变量 4在程序退出部分前加入 //卸载gdi+ 5在Project->stting->Link->Object/libary中加入gdiplus.lib 好了经过上面几步我们就可以在程序中使用GDI+了,先试一下吧! 显示一个透明字符串 Graphics mygraphics(hdc);//创建一个Graphics对象 mygraphics.DrawString(L"Hello Word!",-1,&font,pointF,&brush); 或显示一幅jpg图像 Graphics imgraphics(hdc); 注意要把001.jpg考到工程目录下 下面是一个例子有兴趣的可以下载 以上是我写的,请望能给大家一些帮助
#include <comdef.h>//初始化一下com口
#ifndef ULONG_PTR
#define ULONG_PTR unsigned long*
#include "GdiPlus.h"
using namespace Gdiplus;
#endif
#pragma comment(lib,"gdiplus.lib")
GdiplusStartupInput m_gdiplusStartupInput;
ULONG_PTR m_pGdiToken;
GdiplusStartup(&m_pGdiToken,&m_gdiplusStartupInput,NULL);
//卸载gdi+
GdiplusShutdown(m_pGdiToken);
{
pDC =GetDC();
Graphics graphics( pDC->m_hDC);
Image image(L"walkman.png", FALSE);
graphics.DrawImage(&image, 10,10);
}
GDI+是Windows XP中的一个子系统,它主要负责在显示屏幕和打印设备输出有关信息,它是一组通过C++类实现的应用程序编程接口。顾名思义,GDI+是以前版本GDI的继承者,出于兼容性考虑,Windows XP仍然支持以前版本的GDI,但是在开发新应用程序的时候,开发人员为了满足图形输出需要应该使用GDI+,因为GDI+对以前的Windows版本中GDI进行了优化,并添加了许多新的功能。
#include <comdef.h>//初始化一下com口
#ifndef ULONG_PTR
#define ULONG_PTR unsigned long*
#include "GdiPlus.h"
using namespace Gdiplus;
#endif
#pragma comment(lib,"gdiplus.lib")
GdiplusStartupInput m_gdiplusStartupInput;
ULONG_PTR m_pGdiToken;
GdiplusStartup(&m_pGdiToken,&m_gdiplusStartupInput,NULL);
//卸载gdi+
GdiplusShutdown(m_pGdiToken);
{
pDC =GetDC();
Graphics graphics( pDC->m_hDC);
Image image(L"walkman.png", FALSE);
graphics.DrawImage(&image, 10,10);
}
用GDI+如何显示透明背景的PNG文件?楼主ruchimy(泥秋)2005-05-26 17:16:14 在 VC/MFC / 图形处理/算法 提问
我使用如下代码:
ImageAttributes imAtt;
imAtt.SetColorKey(Color(0,0,0),Color(10,10,10),ColorAdjustTypeDefault);
graphics.SetSmoothingMode(SmoothingModeAntiAlias);
Image imageBlue(TEXT(".\\res\\NumbersBlue.png"));
graphics.DrawImage (&imageYear,Rect(cx,0,iYearWidth,iYearHeight),0,iYearHeight,iYearWidth,iYearHeight,UnitPixel,&imAtt);
显示的图片虽然是透明的,但边边有黑点.哪位高手能指点一下?
在VC6.0时边要加入以下三句到stdafx.h里边
#include <gdiplus.h>
using namespace Gdiplus;
#pragma comment(lib,"gdiplus.lib")
{
_ASSERT(lpstrFile);
USES_CONVERSION;
auto_ptr<Bitmap> pBmp(new Bitmap(CT2CW(lpstrFile)));
if(!pBmp.get() || Ok != pBmp->LastStatus())
return E_FAILED;
Graphic grp(hDC);
if(Ok != grp.DrawImage(pBmp.get(), X, Y, iWidth, iHeight))
return E_FAILED;
return S_OK;
}
作者:radcat 文章来源:本站原创 点击数:3422 更新时间:2007-3-10 15:42:48
原帖及讨论:http://bbs.bc-cn.net/dispbbs.asp?BoardID=55&ID=102037
#include <comdef.h>//初始化一下com口
#define ULONG_PTR unsigned long*
#include "GdiPlus.h"
using namespace Gdiplus;
#endif
//结束
GdiplusStartupInput m_gdiplusStartupInput;
ULONG_PTR m_pGdiToken;
//装载gdi+
GdiplusStartup(&m_pGdiToken,&m_gdiplusStartupInput,NULL);
GdiplusShutdown(m_pGdiToken);
SolidBrush brush(Color(100,0,0,255));//创建一个笔刷 第一项是透明度 后三项是RGB值
FontFamily fontFamily(L"Latha");选择一种字体
Font font(&fontFamily,1,FontStyleRegular,UnitInch);
PointF pointF(5,5);
Image image(L"001.jpg");
imgraphics.DrawImage(&image,0,0);
http://bbs.bc-cn.net/viewFile.asp?BoardID=55&ID=13660
发表评论
-
__declspec(novtable) 的用法
2010-11-27 14:37 1578__declspec(novtable) 的用法 __d ... -
解决URLDownloadToFile缓存问题的两种方法
2010-09-09 15:18 2903解决URLDownloadToFile缓存问题的两种方法 ... -
修改richedit背景
2010-07-19 22:52 1646RichEditCtrl::SetBackgroundCo ... -
使用ADO封装类的数据库程序开发实例(下)
2010-07-12 15:30 1473使用ADO封装类的数据库 ... -
使用ADO封装类的数据库程序开发实例(上)
2010-07-12 15:28 1213使用ADO封装类的数据库 ... -
VC防止窗口和控件闪烁的方法
2010-07-09 21:16 20211、将Invalidate()替换为Invalidate ... -
防止窗口闪烁地办法
2010-07-09 21:13 1512防止窗口闪烁地办法 也许我们都碰到过这种情况,当你 ... -
使用ADO _ConnectionPtr
2010-07-06 16:04 5264// GetUser.cpp : Defines the ... -
VC用ADO访问数据库全攻略
2010-07-06 15:29 1798VC用ADO访问数据库全 ... -
深入GetMessage和PeekMessage (引自-MSDN技术组)
2010-06-10 16:59 3726深入GetMessage和PeekMessage (引自 ... -
界面编程总结(1)
2010-06-02 13:32 4011原文地址:http://blog.csdn.net/byx ... -
获取信息的有关Windows API
2010-05-27 10:01 3146获取信息的有关Windows API 1.窗口信息 ... -
VC中如何实现窗口的隐藏
2010-05-13 10:08 7861VC中如何实现窗口的隐藏 用MFC做的Dialog ... -
SetConsoleCtrlHandler 处理控制台消息
2010-05-07 17:32 18142SetConsoleCtrlHandler 处理控制台消 ... -
解决决错误: error C2850: 'PCH header file'
2010-04-27 19:45 1952解决决错误: error C2850: 'PCH hea ... -
VC++ GDI+编程的字体和文本绘制
2010-04-13 13:12 7978字体是文字显示和打印的外观形式,它包括了文字的字样、风格和尺寸 ... -
GDI+编程基础(一)GDI+ Vs GDI
2010-04-12 15:59 2334下载源代码一、GDI GDI是位于应用程序与不同硬件之间 ... -
VC画图
2010-04-12 15:50 1537BOOL DrawPic(HDC hdc, TCHAR* ... -
对话框的数据交换--MFC深入浅出
2010-04-12 10:43 2457对话框数据交换指以下两种动作,或者是把内存数据写入对应的控 ... -
MFC中获取命令行参数的几种方法
2010-04-08 18:09 2969在MFC程序中,可以用以下几种方法来获取命令行参数。为方便 ...
相关推荐
本主题将深入探讨如何使用Visual C++ (VC++) 和GDI+库来实现一个基于分层窗体(Layered Window)的PNG透明窗体。这在需要在视频或其他背景上显示具有自定义透明度的窗口时非常有用,例如制作桌面小工具或软件界面。 ...
这个项目的核心在于利用GDI+的特性来处理PNG图片的Alpha通道,从而创建出具有透明效果的窗口。 首先,让我们了解什么是GDI+。GDI+是Windows图形设备接口的一个扩展,它提供了比传统GDI更丰富的绘图功能,包括对矢量...
在本文中,我们将深入探讨如何在VC6中有效地利用GDI+进行编程。 首先,让我们了解GDI+的基本概念。GDI+(Graphics Device Interface Plus)是微软推出的一种面向对象的图形库,它在原有的GDI(Graphics Device ...
通过学习这个例子,开发者可以更好地理解和掌握如何在VC6环境下利用GDI+双缓冲技术来优化图形更新,提升程序的视觉效果。 总的来说,GDI+双缓冲技术在解决Windows应用程序中的闪烁问题上发挥了重要作用。对于开发者...
在VC6.0环境下,利用GDI+库来实现PNG图片的半透明渐变特效窗口是一种常见的技术。GDI+是Microsoft提供的一种图形设备接口,它扩展了传统的GDI(Graphics Device Interface)功能,增加了对矢量图形、位图操作以及更...
在VC6.0环境下,利用GDI+技术可以创建出具有高级视觉效果的应用程序,比如半透明渐变的特效窗口。GDI+是Microsoft提供的一个图形设备接口的增强版本,它扩展了GDI的功能,提供了更强大的绘图、字体渲染和图像处理...
在本文中,我们将深入探讨如何利用GDI+来创建和绘制半透明窗口,并特别关注如何处理PNG图像。这在现代应用程序设计中是非常重要的,因为半透明效果可以极大地提升用户体验。 首先,我们要理解半透明窗口的工作原理...
例如,你可以创建一个派生自`CButton`的类,并重写`OnPaint`方法,利用GDI+进行绘制: ```cpp class CMyButton : public CButton { public: afx_msg void OnPaint() { CPaintDC dc(this); // 创建设备上下文 ...
通过熟练掌握以上知识点,开发者可以在VC中利用GDI+创建出具有专业视觉效果的应用程序,为用户提供更优质的用户体验。在实际项目中,结合MFC或WinAPI框架,GDI+能够发挥更大的作用,实现各种复杂的界面设计和动画...
在VC++中,我们可以利用GDI+提供的类库来实现复杂的图形绘制。 2. **PNG图像处理**: PNG是一种无损压缩的位图格式,支持透明度和Alpha通道。在GDI+中,我们可以使用`Gdiplus::Bitmap`类来加载和处理PNG图片。这...
描述提到"在VC6.0中用GDI+调用png图片实现半透明渐变的特效窗口",这表明我们将探讨如何利用GDI+处理PNG图像的透明度信息,并将其应用到窗口上创建一个具有半透明渐变效果的特效。这通常涉及到设置窗口的阿尔法通道...
本篇文章将详细探讨如何使用GDI++来绘制透明贴图,并实现窗口置顶显示。 首先,透明贴图是指图像的一部分或全部具有不同程度的透明度,可以与背景或其他元素融合,产生出丰富的视觉效果。在GDI+中,我们可以利用`...
这个“GDI+开发包”提供了开发者所需要的所有资源,包括库文件、头文件以及可能的示例代码和文档,使得在Visual C++(VC)环境中利用GDI+进行开发变得更加便捷。 GDI+的主要功能包括: 1. **图形绘制**:GDI+提供...
3. **绘制图像**:利用GDI+的绘图功能将PNG图像绘制到内存DC中。 4. **实现透明效果**:使用`UpdateLayeredWindow`函数更新窗口层次结构,实现透明效果。 5. **释放资源**:在项目退出前调用`GdiplusShutdown`函数...
在VC6环境下,开发一个利用GDI+技术实现的透明时钟程序,是一个结合MFC框架与图形界面设计的典型示例。这个项目涉及到的主要知识点包括GDI+库的使用、MFC应用基础、异形窗体的创建以及透明效果的实现。 首先,GDI+...
GDI+(Graphics Device Interface Plus)是微软推出的一种图形设备接口的增强版本,主要用于Windows应用程序中的图形绘制...通过合理利用这些文件,开发者可以充分利用GDI+的强大功能,实现丰富的图形和图像处理效果。
MFC库也提供了对GDI+的支持,使得开发者可以利用GDI+的功能进行图形编程。 本压缩包中的“GDI+程序设计实例VC源代码”包含了多个示例项目,这些示例覆盖了GDI+的多种核心概念和技术。通过分析和学习这些源代码,...
在本主题中,我们将深入探讨如何在VC6.0环境下利用GDI+实现透明按钮的自绘。 首先,让我们了解什么是自绘按钮。在Windows应用程序中,标准的按钮控件通常由系统自动绘制,但其样式有限且不支持透明效果。为了创建...
在本文中,我们将深入探讨如何使用VC++ 2010和GDI+技术来处理图像,特别是关于图片的透明度、对比度和亮度的调整,以及如何将修改后的图像保存为PNG格式。GDI+(Graphics Device Interface Plus)是微软提供的一种...