`

VC画图

    博客分类:
  • VC
阅读更多

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画图程序(包含文档,详细步骤)

    本文将围绕“VC画图程序”这一主题,深入探讨如何使用Microsoft的Visual C++(简称VC++)环境来创建一个简单的画图程序。这个程序不仅能够帮助初学者理解图形用户界面(GUI)编程的基本概念,还能让有经验的开发者...

    VC画图应用程序

    首先,我们要理解VC画图应用程序的基本架构。此类应用程序通常基于Windows SDK中的GDI(Graphics Device Interface)或GDI+库,这些库提供了丰富的图形绘制功能,如线条、曲线、填充区域、文本渲染等。为了创建一个...

    VC画图软件(初级)

    【VC画图软件(初级)】是面向初学者的一款基于Visual C++开发的简单图形绘制程序。这个软件提供了基本的绘图工具,如直线和画笔,用户可以根据自己的需求选择不同的颜色来创作图形。在深入探讨这个软件之前,我们先...

    vc画图程序代码 比windows还强

    【VC画图程序代码 比Windows还强】 在编程领域,VC++(Microsoft Visual C++)是一款广泛使用的集成开发环境,尤其适用于Windows平台上的应用开发。本资源提供的"vc画图程序代码"是一个利用VC++编写的绘图程序,据...

    CDC.rar_CDC_VC画图_VC画图 ondr_vc画图程序_篮球场的画图

    总的来说,"CDC_VC画图 ondr_vc画图程序_篮球场的画图"是一个很好的学习资源,它直观地展示了如何使用VC++和CDC进行图形绘制。通过这个例子,开发者可以掌握Windows图形用户界面的基本绘图技巧,为进一步开发复杂的...

    vc画图最全集,最全的vc绘图集合

    VC 绘图最全集 本文档旨在提供最全面的 VC 绘图方法和函数介绍,并通过实例来帮助学习者快速掌握 VC 绘图方面的专业技能。从此,VC 绘图不再是难题。 文本输出函数 CDC 类中封装了多种文本输出函数,它们都是使用...

    VC.rar_VC word_vc .db_vc 画图_vc 画图程序

    "VC word_vc .db_vc 画图_vc 画图程序"这部分描述了压缩包内可能包含的几个关键组件:一个与VC相关的文档(可能是关于编程或教程的Word文档)、一个可能的数据库文件(".db"),以及两个与画图程序相关的文件——一...

    vc画图示例

    在VC++环境中,"vc画图示例"通常是指使用MFC(Microsoft Foundation Classes)库进行图形绘制的程序。C语言虽然本身不直接支持图形输出,但通过VC++的MFC库,我们可以利用Windows API来实现图形绘制。MFC是微软提供...

    VC画图软件的开发

    在本文中,我们将深入探讨如何使用VC++进行画图软件的开发,以创建一个名为“制图精灵”的应用程序。这个软件提供了丰富的图形处理功能,包括划线、设置线型、线条颜色、线宽以及填充色等。我们首先会介绍VC++编程...

    vc 画图工具及源文件

    《VC画图工具及源文件解析》 在编程领域,尤其是Windows平台的开发,Visual C++(简称VC)是一款至关重要的工具,它提供了强大的编译器和丰富的开发环境,广泛应用于系统级应用、桌面应用以及游戏开发等。本文将...

    VC画图程序

    VC画图程序,实现Windows的画图程序大多数功能,以及Word的部分功能,可以保存成矢量图,编辑,删除,移动,使用CRectTracker实现选择等功能,以及导出为BMP文件等功能。压缩包内有程序文档

    draw_v1[1][1].3.rar_VC画图_vc 画图_vc画图程序

    通过研究这个VC画图程序,开发者不仅可以提升C++编程技能,还能深入理解Windows GUI编程,同时也能了解到如何利用MFC和GDI进行图形绘制,这对于想要进入桌面应用开发领域的学习者来说是一份宝贵的资料。

    VC画图工具

    "VC画图工具"是一款基于Visual C++(VC)开发的简单画图应用程序,适合编程初学者学习和使用。这款工具提供了基本的图形绘制功能,包括颜色选择和画布操作,帮助用户理解图形用户界面(GUI)编程的基本原理以及图形...

    VC 画图程序 MFC应用

    《VC++ MFC实现画图程序详解》 在软件开发领域,VC++是Microsoft公司推出的一种集成开发环境,它基于C++编程语言,而MFC(Microsoft Foundation Classes)是微软提供的一个类库,用于简化Windows应用程序的开发。本...

    2Drawing画图程序2Drawing.rar_drawing_vc 画图_画图 vc_画图VC++_画图程序

    "2Drawing画图程序2Drawing.rar_drawing_vc 画图_画图 vc_画图VC++_画图程序"这一项目,便是基于微软的Visual C++(简称VC++)开发的一个二维图形绘制程序。本文将深入探讨这个项目的核心知识点,以及如何利用VC++...

    vc画图程序,功能很全,很好用的

    【VC画图程序】是一种基于Microsoft Visual C++(简称VC)开发的图形用户界面应用程序,它提供了丰富的功能,使得用户可以进行各种图形绘制操作。在编程领域,这样的程序通常使用MFC(Microsoft Foundation Classes...

    vc画图板源码

    在本文中,我们将深入探讨基于VC++的"vc画图板源码",这是一个用于创建图形界面应用程序的项目。这个项目的核心是利用MFC(Microsoft Foundation Classes)库,它是Microsoft为C++开发者提供的一个用于构建Windows...

    Zhifangtu_source.rar_ 直方图_vc 画图程序_vc 直方图_vc画图程序_直方图

    这个"vc画图程序"可能包含了以下关键步骤: 1. 数据准备:收集或读取需要绘图的数据,可以是数组或其他数据结构。 2. 计算频数:对数据进行分组并计算每个组内元素的数量。 3. 初始化绘图环境:创建窗口,并设置...

    VC画图程序实现绘图并保存

    通过以上步骤,你将能创建一个基础的VC画图程序,不仅可以绘制各种形状,还能保存用户的创作。这样的项目不仅锻炼了C++编程技巧,也对Windows图形编程有了深入了解。在实际开发中,还可以进一步扩展,如添加颜色选择...

    MyDraw_VC画图_

    《MyDraw_VC画图_详解》 在计算机领域,图形用户界面(GUI)的应用日益广泛,其中绘图软件是不可或缺的一部分。"MyDraw_VC画图_"是一个基于VC++(Visual C++)开发的图形绘制工具,它允许用户绘制基本图元,并进行...

Global site tag (gtag.js) - Google Analytics