MFC CDC 类 公共方法:CDC::TransparentBlt
CDC::TransparentBlt 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于在设备上绘制一个位图,并且可以指定透明颜色。这个方法通常用于创建透明效果的图形。下面是关于 CDC::TransparentBlt 方法的简要说明:BOOL TransparentBlt( int xDest, int yDest, int nDestWidth, int nDestHeight, CDC* pSrcDC, int xSrc, int ySrc, int nSrcWidth, int nSrcHeight, UINT crTransparent);参数说明: xDest、yDest:目标矩形左上角的 x 和 y 坐标。 nDestWidth、nDestHeight:目标矩形的宽度和高度。 pSrcDC:指向源设备上下文的指针,表示要复制的位图所在的设备上下文。 xSrc、ySrc:源矩形左上角的 x 和 y 坐标。 nSrcWidth、nSrcHeight:源矩形的宽度和高度。 crTranspare...
MFC CDC 类 公共方法:CDC::TextOut
CDC::TextOut 是 MFC(Microsoft Foundation Classes)中的一个方法,用于在设备上下文(Device Context,DC)中输出文本。这个方法可以在指定的坐标位置上输出指定的字符串。这个方法的原型如下:BOOL TextOut( int x, int y, LPCTSTR lpszString, int nCount = -1);参数说明: x 和 y 是绘制文本的起始点的坐标。 lpszString 是一个以 null 结尾的字符串,表示要显示的文本。 nCount 是要绘制的字符数,如果为 -1,表示使用整个字符串。这个方法返回一个 BOOL 类型的值,表示是否成功绘制文本。下面是一个简单的示例代码,演示如何使用 TextOut 方法:void CMyView::OnDraw(CDC* pDC){ LPCTSTR lpszText = _T("Hello, MFC!"); int nTextLength = lstrlen(lpszText); // 在坐标...
MFC CDC 类 公共方法:CDC::TabbedTextOut
CDC::TabbedTextOut 是 MFC(Microsoft Foundation Classes)中的一个方法,用于在设备上下文(Device Context,DC)中绘制经过制表符处理的文本。该方法允许你在指定的水平位置上显示文本,制表符会根据设定的制表位进行对齐。这个方法的原型如下:LONG TabbedTextOut( int x, int y, LPCTSTR lpszString, int nCount, int nTabPositions, LPINT lpnTabStopPositions, int nTabOrigin);参数说明: x 和 y 是绘制文本的起始点的坐标。 lpszString 是一个以 null 结尾的字符串,表示要显示的文本。 nCount 是要绘制的字符数,如果为 -1,表示使用整个字符串。 nTabPositions 是制表符位置的数量。 lpnTabStopPositions 是一个指向整数数组的指针,表示制表符的位置。如果为 nullptr,则使用默认的制表符位...
MFC CDC 类 公共方法:CDC::StrokePath
CDC::StrokePath 是 MFC(Microsoft Foundation Classes)中的一个方法,用于在设备上下文(Device Context,DC)中描绘路径。路径是由一系列线条和曲线组成的图形对象。该方法允许你指定路径的描边属性,并在设备上下文中呈现该路径。这个方法的原型如下:BOOL StrokePath();这个方法在当前设备上下文中使用当前的路径对象执行描边操作。下面是一个简单的示例代码,演示如何使用 StrokePath 方法:void CMyView::OnDraw(CDC* pDC){ // 创建路径对象 CPen pen(PS_SOLID, 2, RGB(255, 0, 0)); // 创建红色描边画笔 CRect rect(50, 50, 150, 100); CPoint points[3]; points[0] = CPoint(rect.left, rect.bottom); points[1] = CPoint(rect.right, rect.bottom); points[2] = CPoin...
MFC CDC 类 公共方法:CDC::StrokeAndFillPath
在 MFC 中,CDC::StrokeAndFillPath 方法用于在设备上下文(Device Context,DC)中描绘并填充路径。路径是由一系列线条和曲线组成的图形对象。该方法允许你指定路径的描边和填充属性,并在设备上下文中呈现该路径。该方法的原型如下:BOOL StrokeAndFillPath();这个方法没有参数,它在当前设备上下文中使用当前的路径对象执行描边和填充操作。下面是一个简单的示例代码,演示如何使用 StrokeAndFillPath 方法:void CMyView::OnDraw(CDC* pDC){ // 创建路径对象 CPen pen(PS_SOLID, 2, RGB(255, 0, 0)); // 创建红色描边画笔 CBrush brush(RGB(0, 0, 255)); // 创建蓝色填充刷子 CRect rect(50, 50, 150, 100); CPoint points[3]; points[0] = CPoint(rect.left, rect.bottom); points[1] = CPoin...
MFC CDC 类 公共方法:CDC::StretchBlt
CDC::StretchBlt 是 MFC(Microsoft Foundation Classes)中的一个方法,用于在设备上下文(Device Context,DC)中进行位图的拉伸(Stretch)和位块传输(BitBlt)。它可以将源矩形区域的内容拉伸到目标矩形区域,同时可以进行一些其他的图形效果。这个方法的原型如下:BOOL StretchBlt( int xDest, int yDest, int nDestWidth, int nDestHeight, CDC* pSrcDC, int xSrc, int ySrc, int nSrcWidth, int nSrcHeight, DWORD dwRop);参数说明: xDest 和 yDest 是目标矩形区域的左上角坐标。 nDestWidth 和 nDestHeight 是目标矩形区域的宽度和高度。 pSrcDC 是源设备上下文,...
MFC CDC 类 公共方法:CDC::StartPage
CDC::StartPage 是 MFC(Microsoft Foundation Classes)中的一个方法,用于开始打印作业的一页。在每次调用 StartPage 方法时,会开始打印新的一页,你可以在这一页上绘制图形和文本。这个方法的原型如下:int StartPage();这个方法返回一个整数,表示页面的标识符,如果出现错误,则返回一个负值。通常,你在调用 StartDoc 启动打印作业后,通过多次调用 StartPage 和 EndPage 来处理每一页的绘制。示例代码如下:CPrintDialog printDlg(FALSE);if (printDlg.DoModal() == IDOK) // 如果用户点击了“打印”按钮{ CDC dcPrint; // 用于打印的设备上下文 if (dcPrint.Attach(printDlg.GetPrinterDC())) // 获取打印机设备上下文 { DOCINFO docInfo; memset(&docInfo, 0, sizeof(DOCINFO)); ...
MFC CDC 类 公共方法:CDC::StartDoc
CDC::StartDoc 是 MFC(Microsoft Foundation Classes)中的一个方法,用于开始一个打印文档。这个方法标志着开始一个打印作业,并通知打印机准备接收文档的页面。这个方法的原型如下:int StartDoc( const DOCINFO* pDocInfo);参数说明: pDocInfo 是一个指向 DOCINFO 结构的指针,该结构包含了有关打印作业的信息,如文档名称等。DOCINFO 结构是标准的 Windows 结构,定义如下:typedef struct _DOCINFO { int cbSize; LPCTSTR lpszDocName; LPCTSTR lpszOutput; LPCTSTR lpszDatatype; DWORD fwType;} DOCINFO, *LPDOCINFO; - cbSize 是结构的大小,应该设置为结构的大小,即 sizeof(DOCINFO)。 - lpszDocName 是一个以 null 结尾的字符串,表示文档的名称。 - lpszOutput 是...
MFC CDC 类 公共方法:CDC::SetWorldTransform
CDC::SetWorldTransform 是 MFC(Microsoft Foundation Classes)中的一个方法,用于设置设备环境(Device Context,DC)的世界变换矩阵。世界变换矩阵定义了逻辑坐标空间与设备坐标空间之间的映射关系,允许进行平移、旋转、缩放等变换。这个方法的原型如下:BOOL SetWorldTransform( const XFORM* pXform);参数说明: pXform 是一个指向 XFORM 结构的指针,该结构定义了世界变换矩阵。XFORM 结构包含了6个浮点数,表示矩阵的各个元素。这个方法返回一个 BOOL 类型的值,表示是否成功设置了世界变换矩阵。示例代码如下:CClientDC dc(this); // 假设在一个 CWnd 派生类的成员函数中调用// 设置一个平移和缩放的世界变换矩阵XFORM xform;xform.eM11 = 2.0f; // 水平缩放因子xform.eM12 = 0.0f;xform.eM21 = 0.0f;xform.eM22 = 2.0f; // 垂直缩放因子xform.eDx = 50.0...
MFC CDC 类 公共方法:CDC::SetWindowOrg
CDC::SetWindowOrg 是 MFC(Microsoft Foundation Classes)中的一个方法,用于设置设备环境(Device Context,DC)的窗口原点。窗口原点定义了逻辑坐标空间中 (0, 0) 点的位置,它影响了在绘图时坐标的映射关系。这个方法的原型如下:BOOL SetWindowOrg( int x, int y );参数说明: x 和 y 是整数,表示在 x 轴和 y 轴上的窗口原点的坐标。这个方法返回一个 BOOL 类型的值,表示是否成功设置了窗口原点。示例代码如下:CClientDC dc(this); // 假设在一个 CWnd 派生类的成员函数中调用BOOL bResult = dc.SetWindowOrg(50, 50); // 设置窗口原点为 (50, 50)if (bResult){ // 成功设置窗口原点 TRACE(_T("SetWindowOrg succeeded!\n"));}else{ // 设置窗口原点失败 TRACE(_T("SetWindowOrg...
MFC CDC 类 公共方法:CDC::SetWindowExt
CDC::SetWindowExt 是 MFC(Microsoft Foundation Classes)中的一个方法,用于设置设备环境(Device Context,DC)的窗口扩展。窗口扩展定义了逻辑坐标空间中一个单位的大小,它影响了在绘图时坐标的映射关系。这个方法的原型如下:BOOL SetWindowExt( int x, int y );参数说明: x 和 y 是整数,表示在 x 轴和 y 轴上的窗口扩展值。这个方法返回一个 BOOL 类型的值,表示是否成功设置了窗口扩展。示例代码如下:CClientDC dc(this); // 假设在一个 CWnd 派生类的成员函数中调用BOOL bResult = dc.SetWindowExt(2, 2); // 设置窗口扩展为 (2, 2)if (bResult){ // 成功设置窗口扩展 TRACE(_T("SetWindowExt succeeded!\n"));}else{ // 设置窗口扩展失败 TRACE(_T("SetWindowExt failed!\n&...
MFC CDC 类 公共方法:CDC::SetViewportOrg
CDC::SetViewportOrg 是 MFC(Microsoft Foundation Classes)中的一个方法,用于设置设备环境(Device Context,DC)的视口原点。视口原点定义了逻辑坐标空间中 (0, 0) 点的位置,它影响了在绘图时坐标的映射关系。这个方法的原型如下:BOOL SetViewportOrg( int x, int y );参数说明: x 和 y 是整数,表示在 x 轴和 y 轴上的视口原点的坐标。这个方法返回一个 BOOL 类型的值,表示是否成功设置了视口原点。示例代码如下:CClientDC dc(this); // 假设在一个 CWnd 派生类的成员函数中调用BOOL bResult = dc.SetViewportOrg(50, 50); // 设置视口原点为 (50, 50)if (bResult){ // 成功设置视口原点 TRACE(_T("SetViewportOrg succeeded!\n"));}else{ // 设置视口原点失败 TRACE(_T("SetV...
MFC CDC 类 公共方法:CDC::SetViewportExt
CDC::SetViewportExt 是 MFC(Microsoft Foundation Classes)中的一个方法,用于设置设备环境(Device Context,DC)的视口扩展。视口扩展定义了逻辑坐标空间中一个单位的大小,它影响了在绘图时坐标的映射关系。这个方法的原型如下:BOOL SetViewportExt( int x, int y );参数说明: x 和 y 是整数,表示在 x 轴和 y 轴上的视口扩展值。这个方法返回一个 BOOL 类型的值,表示是否成功设置了视口扩展。示例代码如下:CClientDC dc(this); // 假设在一个 CWnd 派生类的成员函数中调用BOOL bResult = dc.SetViewportExt(2, 2); // 设置视口扩展为 (2, 2)if (bResult){ // 成功设置视口扩展 TRACE(_T("SetViewportExt succeeded!\n"));}else{ // 设置视口扩展失败 TRACE(_T("SetViewportExt ...
MFC CDC 类 公共方法:CDC::SetTextJustification
CDC::SetTextJustification 是 MFC(Microsoft Foundation Classes)中的一个方法,用于设置文本输出时的字符间距和字间距。它允许你在水平文本输出时调整字符之间的距离和字之间的距离。这个方法的原型如下:int SetTextJustification( int nBreakExtra, int nBreakCount);参数说明: nBreakExtra 是一个整数,表示额外的间距,以逻辑单位(logical units)为单位。正值增加字符间距,负值减小字符间距。 nBreakCount 是一个整数,表示每多少个字符插入一个额外的间距。如果为 0,表示不插入额外间距。这个方法返回之前的字符间距值。示例代码如下:CClientDC dc(this); // 假设在一个 CWnd 派生类的成员函数中调用int nPreviousBreakExtra = 0;int nPreviousBreakCount = 0;// 获取之前的文本对齐方式,以便后续恢复dc.GetTextJustification(&nPreviousB...
MFC CDC 类 公共方法:CDC::SetTextColor
CDC::SetTextColor 是 MFC(Microsoft Foundation Classes)中的一个方法,用于设置文本输出时的文本颜色。这个方法的原型如下:COLORREF SetTextColor( COLORREF crColor);参数说明: crColor 是一个 COLORREF 类型的值,表示文本颜色。可以使用 RGB 宏创建颜色值,例如 RGB(255, 0, 0) 表示红色。这个方法返回之前的文本颜色值。示例代码如下:CClientDC dc(this); // 假设在一个 CWnd 派生类的成员函数中调用COLORREF crPreviousColor = dc.SetTextColor(RGB(255, 0, 0)); // 设置文本颜色为红色// 在这里进行文本输出,例如输出一个字符串CString strText = _T("Hello, MFC!");CPoint ptText(100, 100);dc.TextOut(ptText.x, ptText.y, strText);// 恢复之前的文本颜色值dc.SetText...
MFC CDC 类 公共方法:CDC::SetTextCharacterExtra
CDC::SetTextCharacterExtra 是 MFC(Microsoft Foundation Classes)中的一个方法,用于设置文本输出时字符间的额外间距。它可以用来调整字符之间的距离,以实现特定的文本效果。这个方法的原型如下:int SetTextCharacterExtra( int nCharExtra);参数说明: nCharExtra 是一个整数,表示额外的字符间距,以逻辑单位(logical units)为单位。正值增加字符间距,负值减小字符间距。这个方法返回之前的字符间距值。示例代码如下:CClientDC dc(this); // 假设在一个 CWnd 派生类的成员函数中调用int nPreviousCharExtra = dc.SetTextCharacterExtra(2); // 设置额外的字符间距为 2// 在这里进行文本输出,例如输出一个字符串CString strText = _T("Hello, MFC!");CPoint ptText(100, 100);dc.TextOut(ptText.x, ptText.y...
MFC CDC 类 公共方法:CDC::SetTextAlign
CDC::SetTextAlign 是 MFC(Microsoft Foundation Classes)中的一个方法,用于设置文本输出的对齐方式。它决定了文本的水平和垂直对齐方式。这个方法的原型如下:UINT SetTextAlign( UINT nTextAlign);参数说明: nTextAlign 是一个无符号整数,表示文本对齐方式的组合。可以使用以下标志的组合: - TA_LEFT:文本左对齐。 - TA_RIGHT:文本右对齐。 - TA_CENTER:文本居中对齐。 - TA_TOP:文本顶部对齐。 - TA_BOTTOM:文本底部对齐。 - TA_BASELINE:文本基线对齐。 - TA_UPDATECP:更新当前点位置,即设置文本输出的当前点。这个方法返回之前的文本对齐方式。示例代码如下:CClientDC dc(this); // 假设在一个 CWnd 派生类的成员函数中调用UINT nPreviousAlign = dc.SetTextAlign(TA_CENTER | TA_BOTTOM); // 设置为居中底部对齐// 在这里进行文本输出,...
MFC CDC 类 公共方法:CDC::SetStretchBltMode
CDC::SetStretchBltMode 是 MFC(Microsoft Foundation Classes)中的一个方法,用于设置图形的拉伸(Stretch)模式。它决定了在进行图像拉伸时的算法和效果。这个方法的原型如下:int SetStretchBltMode( int nStretchMode);参数说明: nStretchMode 是一个整数,表示拉伸模式。常用的模式有: - STRETCH_ANDSCANS:使用位与运算进行拉伸。 - STRETCH_ORSCANS:使用位或运算进行拉伸。 - STRETCH_DELETESCANS:使用位删除运算进行拉伸。 - STRETCH_HALFTONE:使用高质量的缩放算法,产生平滑的图像。这个方法返回之前的拉伸模式。示例代码如下:CClientDC dc(this); // 假设在一个 CWnd 派生类的成员函数中调用int nPreviousMode = dc.SetStretchBltMode(STRETCH_HALFTONE); // 设置为 HALFTONE 模式// 在这里进行图像的拉伸,例如拉伸一个...
MFC CDC 类 公共方法:CDC::SetROP2
CDC::SetROP2 是 MFC(Microsoft Foundation Classes)中的一个方法,用于设置图形绘制时的二元光栅运算模式。它决定了如何将新绘制的图形与已有的图形进行合成。这个方法的原型如下:int SetROP2( int nDrawMode);参数说明: nDrawMode 是一个整数,表示绘图模式。常用的模式有: - R2_BLACK:将目标矩形区域的颜色设为黑色。 - R2_WHITE:将目标矩形区域的颜色设为白色。 - R2_COPYPEN:使用当前的画笔颜色。 - R2_MASKPEN:不绘制颜色,只绘制与当前画笔颜色相同的区域。 - 等等。这个方法返回之前的绘图模式。示例代码如下:CClientDC dc(this); // 假设在一个 CWnd 派生类的成员函数中调用int nPreviousMode = dc.SetROP2(R2_COPYPEN); // 设置为 COPYPEN 模式// 在这里进行图形的绘制,例如绘制一条直线dc.MoveTo(50, 50);dc.LineTo(150, 150);// 恢复之前的绘图模式dc...
MFC CDC 类 公共方法:CDC::SetPolyFillMode
CDC::SetPolyFillMode 是 MFC(Microsoft Foundation Classes)中的一个方法,用于设置多边形的填充模式。多边形可以是由多个点组成的形状,例如矩形、三角形等。这个方法的原型如下:int SetPolyFillMode( int nPolyFillMode);参数说明: nPolyFillMode 是填充模式的标志,可以是以下两个值之一: - WINDING:指定“ winding”规则,即对于任意给定的点,通过多边形的射线从该点发出,与多边形相交的射线总数必须为奇数,以便点在多边形内部。 - ALTERNATE:指定“ alternate”规则,即通过多边形的射线从该点发出,与多边形相交的射线总数必须为奇数或零,以便点在多边形内部。这个方法返回之前的填充模式。示例代码如下:CClientDC dc(this); // 假设在一个 CWnd 派生类的成员函数中调用int nPreviousMode = dc.SetPolyFillMode(WINDING); // 设置为 winding 模式// 在这里进行多边形的绘制,例如绘制一个...