BOOL DrawPic(HDC hdc, TCHAR* lpstrFile, HWND hWnd, int nScrWidth, int nScrHeight)
{
IPicture* pPic = NULL;
IStream* pStm = NULL;
BOOL bResult = FALSE;
HANDLE hFile = NULL;
DWORD dwFileSize = 0;
DWORD dwByteRead = 0;
//打开硬盘中的图形文件
hFile = CreateFile(lpstrFile, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (INVALID_HANDLE_VALUE != hFile)
{
//获取文件字节数
dwFileSize=GetFileSize(hFile, NULL);
if (0xFFFFFFFF == dwFileSize)
{
return E_FAIL;
}
else
{
return E_FAIL;
}
//分配全局存储空间
HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, dwFileSize);
LPVOID pvData = NULL;
if (NULL == hGlobal)
{
return E_FAIL;
}
//锁定分配内存块
pvData = GlobalLock(hGlobal);
if (NULL == pvData)
{
return E_FAIL;
}
//把文件读入内存缓冲区
ReadFile(hFile, pvData, dwFileSize, &dwByteRead, NULL);
GlobalUnlock(hGlobal);
CreateStreamOnHGlobal(hGlobal, TRUE, &pStm);
//装入图形文件
bResult = OleLoadPicture(pStm, dwFileSize, TRUE, IID_IPicture, (LPVOID*)&pPic);
if(FAILED(bResult))
{
return E_FAIL;
}
OLE_XSIZE_HIMETRIC hmWidth;//图片的真实宽度
OLE_YSIZE_HIMETRIC hmHeight;//图片的真实高度
pPic-> get_Width(&hmWidth);
pPic-> get_Height(&hmHeight);
//将图形输出到屏幕上(有点像BitBlt)
bResult = pPic-> Render(hdc, 0, 0, nScrHeight, nScrWidth, 0, hmHeight, hmWidth, -hmHeight, NULL);
pPic-> Release();
//关闭打开的文件
CloseHandle(hFile);
if (SUCCEEDED(bResult))
{
return S_OK;
}
else
{
return E_FAIL;
}
}
}
分享到:
相关推荐
本文将围绕“VC画图程序”这一主题,深入探讨如何使用Microsoft的Visual C++(简称VC++)环境来创建一个简单的画图程序。这个程序不仅能够帮助初学者理解图形用户界面(GUI)编程的基本概念,还能让有经验的开发者...
首先,我们要理解VC画图应用程序的基本架构。此类应用程序通常基于Windows SDK中的GDI(Graphics Device Interface)或GDI+库,这些库提供了丰富的图形绘制功能,如线条、曲线、填充区域、文本渲染等。为了创建一个...
【VC画图软件(初级)】是面向初学者的一款基于Visual C++开发的简单图形绘制程序。这个软件提供了基本的绘图工具,如直线和画笔,用户可以根据自己的需求选择不同的颜色来创作图形。在深入探讨这个软件之前,我们先...
【VC画图程序代码 比Windows还强】 在编程领域,VC++(Microsoft Visual C++)是一款广泛使用的集成开发环境,尤其适用于Windows平台上的应用开发。本资源提供的"vc画图程序代码"是一个利用VC++编写的绘图程序,据...
总的来说,"CDC_VC画图 ondr_vc画图程序_篮球场的画图"是一个很好的学习资源,它直观地展示了如何使用VC++和CDC进行图形绘制。通过这个例子,开发者可以掌握Windows图形用户界面的基本绘图技巧,为进一步开发复杂的...
VC 绘图最全集 本文档旨在提供最全面的 VC 绘图方法和函数介绍,并通过实例来帮助学习者快速掌握 VC 绘图方面的专业技能。从此,VC 绘图不再是难题。 文本输出函数 CDC 类中封装了多种文本输出函数,它们都是使用...
"VC word_vc .db_vc 画图_vc 画图程序"这部分描述了压缩包内可能包含的几个关键组件:一个与VC相关的文档(可能是关于编程或教程的Word文档)、一个可能的数据库文件(".db"),以及两个与画图程序相关的文件——一...
在VC++环境中,"vc画图示例"通常是指使用MFC(Microsoft Foundation Classes)库进行图形绘制的程序。C语言虽然本身不直接支持图形输出,但通过VC++的MFC库,我们可以利用Windows API来实现图形绘制。MFC是微软提供...
在本文中,我们将深入探讨如何使用VC++进行画图软件的开发,以创建一个名为“制图精灵”的应用程序。这个软件提供了丰富的图形处理功能,包括划线、设置线型、线条颜色、线宽以及填充色等。我们首先会介绍VC++编程...
《VC画图工具及源文件解析》 在编程领域,尤其是Windows平台的开发,Visual C++(简称VC)是一款至关重要的工具,它提供了强大的编译器和丰富的开发环境,广泛应用于系统级应用、桌面应用以及游戏开发等。本文将...
VC画图程序,实现Windows的画图程序大多数功能,以及Word的部分功能,可以保存成矢量图,编辑,删除,移动,使用CRectTracker实现选择等功能,以及导出为BMP文件等功能。压缩包内有程序文档
通过研究这个VC画图程序,开发者不仅可以提升C++编程技能,还能深入理解Windows GUI编程,同时也能了解到如何利用MFC和GDI进行图形绘制,这对于想要进入桌面应用开发领域的学习者来说是一份宝贵的资料。
"VC画图工具"是一款基于Visual C++(VC)开发的简单画图应用程序,适合编程初学者学习和使用。这款工具提供了基本的图形绘制功能,包括颜色选择和画布操作,帮助用户理解图形用户界面(GUI)编程的基本原理以及图形...
《VC++ MFC实现画图程序详解》 在软件开发领域,VC++是Microsoft公司推出的一种集成开发环境,它基于C++编程语言,而MFC(Microsoft Foundation Classes)是微软提供的一个类库,用于简化Windows应用程序的开发。本...
"2Drawing画图程序2Drawing.rar_drawing_vc 画图_画图 vc_画图VC++_画图程序"这一项目,便是基于微软的Visual C++(简称VC++)开发的一个二维图形绘制程序。本文将深入探讨这个项目的核心知识点,以及如何利用VC++...
【VC画图程序】是一种基于Microsoft Visual C++(简称VC)开发的图形用户界面应用程序,它提供了丰富的功能,使得用户可以进行各种图形绘制操作。在编程领域,这样的程序通常使用MFC(Microsoft Foundation Classes...
在本文中,我们将深入探讨基于VC++的"vc画图板源码",这是一个用于创建图形界面应用程序的项目。这个项目的核心是利用MFC(Microsoft Foundation Classes)库,它是Microsoft为C++开发者提供的一个用于构建Windows...
这个"vc画图程序"可能包含了以下关键步骤: 1. 数据准备:收集或读取需要绘图的数据,可以是数组或其他数据结构。 2. 计算频数:对数据进行分组并计算每个组内元素的数量。 3. 初始化绘图环境:创建窗口,并设置...
通过以上步骤,你将能创建一个基础的VC画图程序,不仅可以绘制各种形状,还能保存用户的创作。这样的项目不仅锻炼了C++编程技巧,也对Windows图形编程有了深入了解。在实际开发中,还可以进一步扩展,如添加颜色选择...
《MyDraw_VC画图_详解》 在计算机领域,图形用户界面(GUI)的应用日益广泛,其中绘图软件是不可或缺的一部分。"MyDraw_VC画图_"是一个基于VC++(Visual C++)开发的图形绘制工具,它允许用户绘制基本图元,并进行...