Windows游戏编程总结(一)图形处理中的几个函数

来源:互联网 发布:淘宝售前客服工作职责 编辑:程序博客网 时间:2024/05/17 07:04

CreateCompatibleDC

函数原型  HDC CreateCompatibleDC(HDC hdc);

hdc:现有设备上下文环境的句柄,如果该句柄NULL,该函数创建一个与应用程序的当前显示器兼容的内存设备上下文环境。

返回值:如果成功,则返回内存设备上下文环境的句柄;如果失败,则返回值为NULL。

功能  该函数创建一个与指定设备兼容的内存设备上下文环境(DC)。通过GetDc()获取的HDC直接与相关设备沟通,而本函数创建的DC,则是与内存中的一个表面相关联

CreateCompatibleBitmap

原型 HBITMAP CreateCompatibleBitmap(HDC hdc,int nWidth,int nHeight);

hdc: 设备环境句柄。

nWidth:指定位图的宽度,单位为像素。

nHeight:指定位图的高度,单位为像素。

功能  该函数创建与指定的设备环境相关的设备兼容的位图。

SelectObject

函数原型:HGDIOBJ SelectObject(HDC hdc, HGDIOBJ hgdiobj)

hdc:设备上下文环境的句柄。

hgdiobj:被选择的对象的句柄(位图/画笔/字体/笔/区域的句柄)。

1.HBITMAP​   声明的(位图句柄)

2. 以下函数获得的

位图:CreateBitmap, CreateBitmapIndirect, CreateCompatible BitmapCreateDIBitmap, CreateDIBsection(只有内存设备上下文环境可选择位图,并且在同一时刻只能一个设备上下文环境选择位图)。

画刷:CreateBrushIndirectCreateDIBPatternBrushCreateDIBPatternBrushPt, CreateHatchBrush, CreatePatternBrush, CreateSolidBrush。

字体:CreateFont, CreateFontIndirect。

笔:CreatePen, CreatePenIndirect。

区域:CombineRgnCreateEllipticRgnCreateEllipticRgnIndirect

CreatePolygonRgn, CreateRectRgn,CreateRectRgnIndirect

函数功能:该函数选择一对象到指定的设备上下文环境中,该新对象替换先前的相同类型的对象。(通俗的说用法 ,位图只有转换为设备上下文环境的句柄(DC)才可以被下面的函数BitBlt 使用)

BitBlt

原型  BOOL BitBlt(  _In_  HDC hdcDest,  _In_  int nXDest,  _In_  int nYDest,

               _In_  int nWidth,  _In_  int nHeight,  _In_  HDC hdcSrc,

                   _In_  int nXSrc,  _In_  int nYSrc,  _In_  DWORD dwRop);

hDestDC:指向目标设备环境的句柄

x:指定目标矩形区域左上角的X轴逻辑坐标。

y:指定目标矩形区域左上角的Y轴逻辑坐标。

nWidth:指定源在目标矩形区域的逻辑宽度。

nHeight:指定源在目标矩形区域的逻辑高度。

hSrcDC:指向源设备环境的句柄。

xSrc:指定源矩形区域左上角的X轴逻辑坐标。

ySrc:指定源矩形区域左上角的Y轴逻辑坐标。

dwRop:指定光栅操作代码。这些代码将定义源矩形区域的颜色数据,如何与目标矩形区域的颜色数据组合以完成最后的颜色。

功能:该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境(通俗的说  就是把 源设备环境的句柄【SelectObject转换的】贴到目标设备环境的句柄【显示窗口上】)。

注:  以上是内容包含个人的理解,如有表述不当或者错误,还请给为高手指出!

1 0