GDI 设备环境句柄(2)】的更多相关文章

WM_PAINT 消息的触发 Windows 程序在以下情况会触发WM_PAINT消息: 窗口被移动导致被遮盖部分暴露出来 用户调整窗口的大小(当窗口类的 style 字段被设置为 CS_HREDRAW 和 CS_VREDRAW) 调用 ScrollWindow 或 ScrollDC 函数滚动客户区 调用 InvalidateRect 或 InvalidateRgn 函数生成 WM_PAINT 获取设备环境句柄 需要在屏幕上绘图的时候,需要先获取到设备环境句柄,这里有两种方式: 1.调用 Beg…
p{ font-size: 15px; } .alexrootdiv>div{ background: #eeeeee; border: 1px solid #aaa; width: 99%; padding: 5px; margin: 1em 0 1em 0; } .alextitlep{ font-size: 18px; font-weight: bold; color: red; } .alexrootdiv span{ color:blue;font-weight:bold; } .al…
1.内存设备环境 内存设备环境是一个没有设备与它联系的环境.一般利用与某个标准设备环境兼容的内存设备环境把一个位图复制到屏幕上去.为此可以先创建一个与某个标准设备环境兼容的内存设备环境,然后把所要显示的位图复制到内存设备环境中,最后再从内存设备环境复制到真实的设备环境,从而把位图显示出来. eg: void CMainFrame::OnBitmapDraw() { CDC* pCDC=GetDC(); //获取当前设备上下文 CBitmap bitmap; //定义CBitmap对象 bitma…
本文主要讲到的是画笔应用,在Wince -06环境下,画笔应用很广泛,很有技巧,这里笔者要着重介绍. 设备环境可以用一下图表示,主要是让大家大致了解Wince -06的设备环境,下面在图形舍虚设计中会用到. 画笔颜色的表示: 颜色用COLORREF类型标识 PGR(cRed,cGreen,cBlue)给COLORREF赋值: 这里一般英文前面都加一个小写字母,而相应的单词首字母是大写.(这里涉及到匈牙利命名法) 取值范围为0~255之间,举例: RGB(0X00,0X00,00)------表示…
http://blog.csdn.net/p424671075/article/details/7235601…
DirectDraw对象 DirectDraw对象是DirectDraw应用程序的核心.它是你在建立DirectDraw应用程序时所要创建的第一个对象,再用它来创建所有其它相关的对象.通过调用DirectDrawCreate函数可以创建一个DirectDraw对象.DirectDraw 对象通过IDirectDraw(移动版本仅支持这个),IDirectDraw2,和IDirectDraw4接口为开发者提供其函数性. DirectDrawSurface对象 DirectDrawSurface对象…
目  录 第一章 DirectX基础(初级篇) 第一节  什么是DirectX 一.什么是DirectX ? 二.DirectX的组成部分 三.关于DirectDraw 四.为什么要使用DirectDraw? 五.DirectX5.0的新特性? 六.什么是部件对象模型(COM) 七.自我检测 第二节  如何安装和使用DirectX 一.编译库和运行库 二.安装 VC++ 5.0 三.安装 DirectX5.0 的 SDK 四.DirectX 5.0 的文件说明 五.卸载 DirectX 第三节 …
http://blog.csdn.net/vagrxie/article/details/4602961 Win32 OpenGL 编程( 1 ) Win32 下的 OpenGL 编程必须步骤 write by 九天雁翎 (JTianLing) -- blog.csdn.net/vagrxie 讨论新闻组及文件 一.    前言 人生在于折腾,继续折腾吧. OpenGL 编程的红宝书< OpenGL Programming Guide>在举例子的时候为了平台无关,使用的都是 GLUT 来管理窗…
windows程序在现实方式上属于图形方式,和文字方式的显示,有显著的不同. 什么是设备句柄,如何获取 使用统一的数据结构表示某一设备,这个结构就是设备句柄. 源码 #include<Windows.h> LRESULT CALLBACK WindProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam); int WinMain(HINSTANCE hInst, HINSTANCE tmp, LPSTR szCmd, int nSh…
5.1 GDI的原理和结构 (1)提供一种特殊机制彻底隔离应用程序与不同输出设备(eg.显示器或打印机),以便支持 与设备无关的图形. 光栅设备(如显示器.激光打印机):图像是由点构成的矩阵 图形输出设备 矢量设备(如绘图仪):使用 线条来绘制图形 (2)Windows GDI允许使用逻辑坐标系统来保证程序与硬件的独立,也可以统用设备坐标系统 (单位:像素)来迎合硬件的需求. (3)GDI总体上是一个静态显示系统,对动画的支持有限.DirectX可支持动画. 5.2 设备环境 5.2.1 获取设…
第15章 设备相关位图_15.3 DIB和DDB的结合 15.3.1 从DIB创建DDB (1)hBitmap =CreateDIBitmap(…)——注意这名称会误导,实际上创建的是DDB 参数 说明 hdc 设备环境句柄,可以为NULL. pInfoHdr 指向DIB信息头的指针,即BITMAPINFOHEADER fInit 0或CBM_INIT.CBM_INIT指定用后面3个参数来初始化DDB中的像素位 pBits DIB像素位的指针 pInfo DIB信息指针,即BITMAPINFO(…
一.关于GDI的基本概念 什么是GDI? Windows绘图的实质就是利用Windows提供的图形设备接口GDI(Graphics Device Interface)将图形绘制在显示器上. 在Windows操作系统中,动态链接库C:/WINDOWS/system32/gdi32.dll(GDI Client DLL)中定义了GDI函数,实现与设备无关的包括屏幕上输出像素.在打印机上输出硬拷贝以及绘制Windows用户界面功能.在Visual C++6.0中的头文件C:/Program Files…
=================================================================================== This article is reshiped from here, thanks for the author. =================================================================================== 构造Graphics对象 Graphics类是…
图形设备接口(GDI)是一个可执行程序,它接受Windows应用程序的绘图请求(表现为GDI函数调用),并将它们传给相应的设备驱动程序,完成特定于硬件的输出,象打印机输出和屏幕输出.GDI负责Windows的所有图形输出,包括屏幕上输出像素.在打印机上输出硬拷贝以及绘制Windows用户界面.也就是Windows的图形编程. 一.GDI体系结构 1.  GDI32.DLL导出的函数 GDI提供几百个Windows程序中可以调用的函数.这些函数大多数是从Win32的子系统DLL GDI32.DLL…
图形设备接口(GDI)是一个可运行程序,它接受Windows应用程序的画图请求(表现为GDI函数调用),并将它们传给对应的设备驱动程序,完毕特定于硬件的输出,象打印机输出和屏幕输出.GDI负责Windows的全部图形输出,包含屏幕上输出像素.在打印机上输出硬拷贝以及绘制Windows用户界面.也就是Windows的图形编程. 一.GDI体系结构 1.  GDI32.DLL导出的函数 GDI提供几百个Windows程序中能够调用的函数.这些函数大多数是从Win32的子系统DLL GDI32.DLL…
摘  要:本文首先给出了一种结合了DIB和DDB两种位图优点的图像显示方法,其次对GDI函数的高级应用,如透明位图显示.图像旋转显示.图像镜像显示进行了研究. 关键词:GDI图像显示,特殊GDI函数的应用,透明位图显示,图像几何变换显示 图像信息是人类认识世界的重要知识来源,人类获得的70%以上的信息来自于眼睛摄取的丰富和真切的图像.图像与计算机相结合带给人们近乎神奇的图像艺术.对于程序开发者来说,实现高速的绘图是设计漂亮友好的用户界面的基础和关键所在. 在Win32图像程序设计中,图像显示的方…
VC++学习之GDI概述 图形设备接口(GDI)是一个可执行程序,它接受Windows应用程序的绘图请求(表现为GDI函数调用),并将它们传给相应的设备驱动程序,完成特定于硬件的输出,象打印机输出和屏幕输出.GDI负责Windows的所有图形输出,包括屏幕上输出像素.在打印机上输出硬拷贝以及绘制Windows用户界面.也就是Windows的图形编程. 一.GDI体系结构 1.  GDI32.DLL导出的函数 GDI提供几百个Windows程序中可以调用的函数.这些函数大多数是从Win32的子系统…
GDI+是GDI的下一个版本,它进行了很好的改进,并且易用性更好.GDI的一个好处就是你不必知道任何关于数据怎样在设备上渲染的细节,GDI+更好的实现了这个优点,也就是说,GDI是一个中低层API,你还可能要知道设备,而GDI+是一个高层的API,你不必知道设备.例如你如果要设置某个控件的前景和背景色,只需设置BackColor和ForeColor属性. 编程模式的变化 “GDI uses a stateful model, whereas GDI+ uses a stateless”——GDI…
构造Graphics对象 Graphics类是GDI+程序设计的核心,Graphics类能够完成大部分的绘图,文本输出,几何图形的填充及坐标系统的转换等各种操作.在功能上,它与GDI的设备环境(DC)一致. Graphics类有下列几种构造函数: static Graphics* FromHDC(HDG hdc); static Graphics* FromHDC(HDG hdc, HANDLE hDevice); static Graphics* FromHWND(HWND hWnd, BOO…
第1章 创建窗口 步骤: 窗口类的设计 窗口类的注册 窗口的正式创建 窗口的显示与更新 消息循环体系 窗口过程函数处理消息 1. 设计:使用WNDCLASSEX结构体,这里注意的是C++中的结构体中的成员默认是共有的,所以可以直接通过 . 来调用. typedef struct tagWNDCLASSEX { UINT cbSize; //UINT类型的cbSize,表示该结构体的字节数大小 UINT style; //指定窗口的风格样式 WNDPROC lpfnWndProc; //指向窗口过…
概述 调用 SetMapMode 函数可以设置映射模式: int SetMapMode( HDC hdc, // 设备环境句柄 int fnMapMode // 要设置的映射模式 ); 同样,调用 GetMapMode 函数可以获取映射模式: int GetMapMode( HDC hdc // 设备环境句柄 ); 注: 默认情况下,映射模式是 MM_TEXT,以像素为单位操作. 映射模式的逻辑坐标只对以设备环境句柄为参数的 GDI 函数有效,非 GDI 函数将继续使用设备坐标 设备坐标系统 屏…
使用现有画笔 Windows 提供三种备用画笔(Stock Pen):BLACK_PEN(黑色画笔).WHITE_PEN(白色画笔).NULL_PEN(不绘制任何图形的画笔). 调用 GetStockObject 函数可以获取备用画笔的句柄(HPEN),调用 SelectObject 函数可以将指定的画笔选入设备环境,并返回之前选入设备环境的画笔句柄: // 定义画笔句柄 HPEN hPen, hPrevPen; // 获取备用画笔的句柄 hPen = GetStockObject(WHITE_…
截取全屏幕 #include <windows.h>   void echo(CHAR *str); int CaptureImage(HWND hWnd, CHAR *dirPath, CHAR *filename);   int main() {     echo(TEXT("Ready"));     CaptureImage(GetDesktopWindow(), "E:\", "screen"); // 保存为 E:scre…
15.2.1 探究DIB (1)DIB文件的结构 整个文件 紧凑DIB(整个文件除文件头) 文件头(File Header) 信息头(Information Header) 信息头(Information Header) 颜色表(Color Table) 颜色表(Color Table) 像素位(Pixel Bits) 像素位(Pixel Bits) 注意:①紧凑DIB在内存中是连续的,即整个DIB存在单个内存块中 ②DIB载入内存时,像素位与信息头可以分别存在两个内存块,即内存不连续. (2)…
14.4.7 在位图上绘图 (1)在内存设备环境中绘图(与真实DC不同的是,内存DC的显示表面是个位图) (2)GetTextExtentPoint32函数:用于确定文本字符串的像素大小.(此大小就是与视频显示兼容的位图的尺寸). 参数 说明 hdc 设备环境句柄 lpString 文本字符串,如szText cbString 文本字符串中字符的个数.如lstrlen(szText) lpSize 指向一个结构体,用来存放结果 (3)当显示器的颜色深度和大小改变时,windows会自动改变内存设…
//-------------------------------------------[头文件及引用]----------------------------------------------------// #include <Windows.h> #include <time.h> #include <stdlib.h> #include <vector> #include <map> #include <string> #…
创建画刷 调用 CreateSoildBrush.CreateHatchBrush.CreateBrushIndirect 函数可以创建画刷. CreateSoildBrush:创建实心画刷: CreateHatchBrush:创建阴影画刷: CreateBrushIndirect:根据 LOGBRUSH 结构的内容创建画刷: Windows 使用被选入设备环境的画笔来描绘边线,使用被选入设备环境的画刷来填充图形. 画刷使用的示例代码: // 定义画刷句柄(HBRUSH) HBRUSH hBru…
绘制矩形 调用 Rectangle 函数可以绘制一个矩形(它将填充这个矩形): BOOL Rectangle( HDC hdc, // 设备环境句柄 int nLeftRect, // 左边线的位置 int nTopRect, // 上边线的位置 int nRightRect, // 右边线的位置 int nBottomRect // 下边线的位置 ); 绘制椭圆 调用 Ellipse 函数可以绘制一个椭圆,它和绘制矩形的参数相同: BOOL Ellipse( HDC hdc, // 设备环境句…
Bezier 样条曲线 Bezier 样条曲线使用四个点来定义:两个端点(起点和终点)和两个控点(用于使其不同程度地弯曲). 绘制 Bezier 样条曲线 使用 PolyBezier 函数和 PolyBezierTo 函数可以绘制 Bezier 样条曲线: BOOL PolyBezier( HDC hdc, // 设备环境句柄 CONST POINT* lppt, // 端点和控制点(顺序是开始点.第一控点.第二控点.终点) DWORD cPoints // 端点和控点的总数量 ); BOOL…
设置开始点 MoveToEx 函数用于移动画笔到指定的位置: BOOL MoveToEx( HDC hdc, // 设备环境句柄 int X, // 要移动到的 x 坐标 int Y, // 要移动到的 y 坐标 LPPOINT lpPoint // 之前的位置(POINT 结构地址) ); 绘制直线 LineTo 函数用于绘制直线到指定位置(这会改变当前画笔的位置到结束位置): BOOL LineTo( HDC hdc, // 设备环境句柄 int nXEnd, // 结束位置的 x 坐标 i…