MFC中的CSize类,GetSafeHdc()函数,StretchDIBits()函数

转载 2013年12月04日 15:03:06
CSize类
类CSize是对Windows结构SIZE的封装,凡是能用SIZE结构的地方都可以用CSize代替。
结构SIZE表示一个矩形的长度和宽度,其定义为:
typedef struct tagSIZE{
LONG cx;
LONG cy;
} SIZE;
其中 cx、cy分别是宽度和高度。
 

GetSafeHdc
Call this member function to get m_hDC, the output device context.
返回输出设备上下文的句柄
Win32 编程时用HDC 来操作 绘图设备
MFC中封装了HDC 但为了和Win32 兼容,
就用这个函数得到它,以备用户操作HDC
 
 
 
 
 
 
 
 

StretchDIBits
该函数将DIB中矩形区域内像素使用的颜色数据拷贝到指定的目标矩形中。如果目标矩形比源矩形大小要大,那么函数对颜色数据的行和列进行拉伸,以与目标矩形匹配。如果目标矩形大小要比源矩形小,那么该函数通过使用指定的光栅操作对行列进行压缩。
函数原型:
int StretchDIBits(HDC hdc, int XDest , int YDest , int nDestWidth, int nDestHeight, int XSrc, int Ysrc, int nSrcWidth, int nSrcHeight, CONST VOID *lpBits, CONST BITMAPINFO * lpBitsInfo, UINT iUsage, DWORD dwRop);

     参数

hdc:指向目标设备环境的句柄
XDest:指定目标矩形左上角位置的X轴坐标,按逻辑单位来表示坐标。
YDest:指定目标矩形左上角的Y轴坐标,按逻辑单位表示坐标。
nDestWidth:指定目标矩形的宽度。
nDestHeight:指定目标矩形的高度。
XSrc:指定DIB中源矩形(左上角)的X轴坐标,坐标以像素点表示。
YSrc:指定DIB中源矩形(左上角)的Y轴坐标,坐标以像素点表示。
nSrcWidth:按像素点指定DIB中源矩形的宽度。
nSrcHeight:按像素点指定DIB中源矩形的高度。
lpBits:指向DIB位的指针,这些位的值按字节类型数组存储,有关更多的信息,参考下面的备注一节。
lpBitsInfo:指向BITMAPINFO结构的指针,该结构包含有关DIB方面的信息。
iUsage:表示是否提供了BITMAPINFO结构中的成员bmiColors,如果提供了,那么该bmiColors是否包含了明确的RGB值或索引。参数iUsage必须取下列值,这些值的含义如下:
DIB_PAL_COLORS:表示该数组包含对源设备环境的逻辑调色板进行索引的16位索引值。
DIB_RGB_COLORS:表示该颜色表包含原义的RGB值,若想了解更多的信息,请参考下面备注一节。
dwRop:指定源像素点、目标设备环境的当前刷子和目标像素点是如何组合形成新的图像。若想了解更多信息,请参考下面的备注一节。
返回值:如果函数执行成功,那么返回值是拷贝的扫描线数目,如果函数执行失败,那么返回值是GDI_ERROR
 
 
 
 
 
 

MFC类CRect、CPoint、CSize

1、CRect矩形类 CRect类与Windows RECT结构相似,在传递LPRECT或RECT结构作为参数的任何地方,都可以传递CRect对象来代替。构造函数: CRect() throw();...

m_pDC->GetSafeHdc()的思考

问题:      经常看到OpenGL中的视场设置中有m_pDC->GetSafeHdc()这句话,我就想了想为甚要这样写呢?看了OpenGL和Vc技术内幕后,我终于好想知道了为什么。解答:     ...
  • cworld
  • cworld
  • 2008年10月27日 22:53
  • 4269

vc如何实现按钮上显示icon

首先要在dialog设计模板上拖放一个按钮,把它的icon属性设为true,把它的owner draw属性设为true,在资源里导入你要使用的icon 然后要在父窗口的WM_DRAWITEM消息响应...

使用DrawIcon绘制图标时大小

使用DrawIcon绘制图标时大小问题 使用DrawIcon绘制图标的时候,发现绘制出来的图标偏大,我本来是要绘制一个16x16的图标,可是绘制出来的出现明显的拉伸。 原来,DrawIcon绘...
  • HMSIWTV
  • HMSIWTV
  • 2012年11月30日 11:02
  • 4198

StretchDIBits函数显示RGB数据流图像

  • 2016年08月27日 18:42
  • 56.39MB
  • 下载

StretchDIBits这个函数

谁用过StretchDIBits这个函数,能讲一下它的所有参数的用法,最好给出一个例子---------------------------------------------------------...

常用MFC类、函数查询手册.exe )

  • 2013年04月17日 16:38
  • 296KB
  • 下载

浅谈MFC中BitBlt与StretchDIBits的区别

一、基础知识1.BitBlt BitBlt 用于从原设备中复制位图到目标设备,语法格式如下: BOOL BitBlt( HDC hdcDest, // handle to destination...

MFC中怎样将位图写入指定的Picture控件中,两种方式:1 加载已有位图 2读取位图文件;另外CreateDIBitmap的用法和StretchDIBits用法举例

注意着两种方式都要事先在对话框中拖picture控件,将其ID改为:IDC_PHOTO //方式一:通过加载一张已有的位图,并将其显示在指定的picture控件中 void CTest...
  • oket007
  • oket007
  • 2013年05月04日 14:17
  • 1007
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MFC中的CSize类,GetSafeHdc()函数,StretchDIBits()函数
举报原因:
原因补充:

(最多只允许输入30个字)