MFC CDC 类 公共方法:CDC::SelectClipRgn
CDC::SelectClipRgn 是 MFC(Microsoft Foundation Classes)中的一个方法,用于选择一个区域作为设备上下文的当前剪切区域。该方法的原型如下:int SelectClipRgn( CRgn* pRgn);其中,pRgn 是一个指向 CRgn 对象的指针,表示要作为剪切区域的区域对象。返回值是一个整数,表示以前剪切区域的复杂性: NULLREGION:以前的剪切区域为空。 SIMPLEREGION:以前的剪切区域是一个矩形。 COMPLEXREGION:以前的剪切区域是一个复杂的区域。使用示例:CDC* pDC = GetDC();// 创建一个矩形区域作为剪切区域CRgn clipRegion;clipRegion.CreateRectRgn(10, 10, 100, 100);// 选择矩形区域作为剪切区域,并保存以前的剪切区域的复杂性int nOldMode = pDC->SelectClipRgn(&clipRegion);// 在剪切区域内进行绘图操作...// 恢复以前的剪切区域pDC->SelectClip...
MFC CDC 类 公共方法:CDC::ScrollDC
在 MFC 中,CDC::ScrollDC 方法用于在设备上下文(Device Context)中滚动视区。这个方法的原型如下:BOOL ScrollDC( int dx, int dy, LPCRECT lpRectScroll, LPCRECT lpRectClip, CRgn* pRgnUpdate, LPRECT lpRectUpdate);参数解释: dx:水平方向的滚动量(以设备单位为单位)。 dy:垂直方向的滚动量(以设备单位为单位)。 lpRectScroll:一个 RECT 结构,表示滚动区域的坐标。 lpRectClip:一个 RECT 结构,表示剪切区域的坐标。 pRgnUpdate:指向 CRgn 对象的指针,用于接收更新区域的信息。 lpRectUpdate:一个 RECT 结构,用于接收更新区域的坐标。这个方法用于在设备上下文中滚动视区,可以指定滚动的区域、剪切区域以及获取更新区域的信息。如果成功,返回非零值;否则返回零。使用示例:CDC* pDC = GetDC();// 设置滚动的参数int dx = 10;int dy = 20...
MFC CDC 类 公共方法:CDC::ScaleWindowExt
在 MFC 中,CDC::ScaleWindowExt 方法用于在设备上下文(Device Context)中按比例缩放窗口的扩展。这个方法的原型如下:BOOL ScaleWindowExt( int xNum, int xDenom, int yNum, int yDenom);参数解释: xNum:水平方向的缩放因子的分子。 xDenom:水平方向的缩放因子的分母。 yNum:垂直方向的缩放因子的分子。 yDenom:垂直方向的缩放因子的分母。这个方法用于按照指定的比例缩放窗口的扩展。如果成功,返回非零值;否则返回零。使用示例:CDC* pDC = GetDC();// 设置水平和垂直缩放因子int xNum = 2;int xDenom = 1;int yNum = 1;int yDenom = 2;// 缩放窗口的扩展pDC->ScaleWindowExt(xNum, xDenom, yNum, yDenom);// 在这里进行绘图操作...ReleaseDC(pDC);在这个例子中,ScaleWindowExt 方法被用于按照指定的比例缩放设备上下文中窗...
MFC CDC 类 公共方法:CDC::ScaleViewportExt
在 MFC 中,CDC::ScaleViewportExt 方法用于在设备上下文(Device Context)中按比例缩放视口的扩展。这个方法的原型如下:BOOL ScaleViewportExt( int xNum, int xDenom, int yNum, int yDenom);参数解释: xNum:水平方向的缩放因子的分子。 xDenom:水平方向的缩放因子的分母。 yNum:垂直方向的缩放因子的分子。 yDenom:垂直方向的缩放因子的分母。这个方法用于按照指定的比例缩放视口的扩展。如果成功,返回非零值;否则返回零。使用示例:CDC* pDC = GetDC();// 设置水平和垂直缩放因子int xNum = 2;int xDenom = 1;int yNum = 1;int yDenom = 2;// 缩放视口的扩展pDC->ScaleViewportExt(xNum, xDenom, yNum, yDenom);// 在这里进行绘图操作...ReleaseDC(pDC);在这个例子中,ScaleViewportExt 方法被用于按照指定的比例缩...
MFC CDC 类 公共方法:CDC::SaveDC
CDC::SaveDC 是 MFC(Microsoft Foundation Classes)中的一个方法,用于保存当前设备上下文(DC)的状态,以便稍后通过 RestoreDC 恢复到这个状态。方法的原型如下:int SaveDC();这个方法返回一个整数值,该值是与保存的设备上下文状态相关的标识符。这个标识符可以在稍后的 RestoreDC 调用中使用,用于将设备上下文还原到之前保存的状态。使用示例:CDC* pDC = GetDC();// 保存当前设备上下文状态int nSavedDC = pDC->SaveDC();// 在这里进行设备上下文属性的修改// 恢复设备上下文状态到之前保存的状态pDC->RestoreDC(nSavedDC);// 在这里进行其他绘图操作...ReleaseDC(pDC);在这个例子中,SaveDC 用于保存当前设备上下文的状态,并返回一个标识符。在 RestoreDC 中使用这个标识符,可以将设备上下文还原到之前保存的状态。这样可以确保修改设备上下文属性后能够正确地回到原始状态。
MFC CDC 类 公共方法:CDC::RoundRect
CDC::RoundRect 是 MFC(Microsoft Foundation Classes)中的一个方法,用于在设备上下文(Device Context)中绘制一个带有圆角的矩形。这个方法的原型为:BOOL RoundRect( int x1, int y1, int x2, int y2, int nWidth, int nHeight);这个方法绘制由参数指定的带有圆角的矩形,其中 (x1, y1) 是矩形的左上角坐标,(x2, y2) 是矩形的右下角坐标,nWidth 和 nHeight 分别是椭圆圆角的宽度和高度。如果矩形成功绘制,返回非零值;否则返回零。使用示例:CDC* pDC = GetDC();// 定义圆角矩形的坐标和椭圆圆角的宽度和高度int x1 = 50;int y1 = 50;int x2 = 150;int y2 = 100;int nWidth = 20; // 椭圆圆角的宽度int nHeight = 20; // 椭圆圆角的高度// 在设备上下文中绘制圆角矩形pDC->RoundRect(x1, y1, x2, y...
MFC CDC 类 公共方法:CDC::RestoreDC
在 MFC 中,CDC::RestoreDC 是一个用于恢复设备上下文状态的方法。这个方法用于将设备上下文的状态还原到之前由 SaveDC 方法保存的状态。方法的原型如下:BOOL RestoreDC( int nSavedDC); nSavedDC:由 SaveDC 返回的保存设备上下文状态时的标识符。使用示例:CDC* pDC = GetDC();int nSavedDC = pDC->SaveDC();// 在这里进行设备上下文属性的修改// 恢复设备上下文状态到之前保存的状态pDC->RestoreDC(nSavedDC);// 在这里进行其他绘图操作...ReleaseDC(pDC);在这个例子中,SaveDC 用于保存当前设备上下文的状态,并返回一个标识符,然后在绘图操作完成后,使用 RestoreDC 将设备上下文还原到之前保存的状态。这有助于确保修改设备上下文属性后能够正确地回到原始状态。
MFC CDC 类 公共方法:CDC::ReleaseOutputDC
在 MFC 中,CDC::ReleaseOutputDC 方法用于释放设备上下文对象的输出设备上下文(Output Device Context,OutputDC)。OutputDC 是与设备上下文相关联的一个用于输出的临时对象。ReleaseOutputDC 用于释放这个临时对象,让设备上下文回到之前的状态。方法的原型如下:void ReleaseOutputDC();使用示例:CDC* pDC = GetDC();// 获取 OutputDCCDC* pOutputDC = pDC->GetOutputDC();// 在 OutputDC 上进行一些绘图操作pOutputDC->TextOut(10, 10, _T("Hello, World!"));// 释放 OutputDCpDC->ReleaseOutputDC();ReleaseDC(pDC);在这个例子中,首先通过 GetOutputDC 获取 OutputDC,然后在 OutputDC 上进行一些绘图操作,最后通过 ReleaseOutputDC 方法释放 OutputDC。这样可...
MFC CDC 类 公共方法:CDC::ReleaseAttribDC
在 MFC 中,CDC::ReleaseAttribDC 方法用于释放设备上下文对象的属性设备上下文(Attributed Device Context,AttribDC)。AttribDC 是与设备上下文相关联的一个用于记录设备上下文状态的临时对象。ReleaseAttribDC 用于释放这个临时对象,让设备上下文回到之前的状态。方法的原型如下:void ReleaseAttribDC( HDC hDC);其中,hDC 是与 AttribDC 相关联的设备上下文的句柄。使用示例:CDC* pDC = GetDC();// 获取 AttribDCCDC* pAttribDC = pDC->GetAttribDC();// 在 AttribDC 上进行一些绘图操作pAttribDC->TextOut(10, 10, _T("Hello, World!"));// 释放 AttribDCpDC->ReleaseAttribDC(pAttribDC->GetSafeHdc());ReleaseDC(pDC);在这个例子中,首先通过 GetAtt...
MFC CDC 类 公共方法:CDC::RectVisible
在 MFC 中,CDC::RectVisible 方法用于检查指定的矩形是否与设备上下文的可见区域相交。这个方法返回一个 BOOL 值,指示矩形是否可见。方法的原型如下:int RectVisible( LPCRECT lpRect) const;其中,lpRect 是一个指向 RECT 结构的指针,表示要检查的矩形。返回值为以下之一: SIMPLEREGION:矩形完全可见。 COMPLEXREGION:矩形部分可见或不可见。 NULLREGION:矩形完全不可见。使用示例:CDC* pDC = GetDC();// 定义一个矩形RECT rect = {50, 50, 150, 100};// 检查矩形是否可见int visibility = pDC->RectVisible(&rect);if (visibility == SIMPLEREGION) { // 矩形完全可见 // 可以在此处进行相应的绘图操作} else if (visibility == COMPLEXREGION) { // 矩形部分可见或不可见 // 可以根据实际需...
MFC CDC 类 公共方法:CDC::Rectangle
CDC::Rectangle 是 MFC(Microsoft Foundation Classes)中的一个方法,用于在设备上下文(Device Context)中绘制一个矩形。这个方法的原型为:BOOL Rectangle( int x1, int y1, int x2, int y2);这个方法绘制由参数指定的矩形,其中 (x1, y1) 是矩形的左上角坐标,(x2, y2) 是矩形的右下角坐标。如果矩形成功绘制,返回非零值;否则返回零。使用示例:CDC* pDC = GetDC();// 定义矩形的左上角和右下角坐标int x1 = 50;int y1 = 50;int x2 = 150;int y2 = 100;// 在设备上下文中绘制矩形pDC->Rectangle(x1, y1, x2, y2);ReleaseDC(pDC);在这个例子中,绘制了一个矩形,左上角坐标为 (50, 50),右下角坐标为 (150, 100)。你可以根据实际需求定义不同的坐标来绘制不同位置和大小的矩形。
MFC CDC 类 公共方法:CDC::RealizePalette
CDC::RealizePalette 是 MFC(Microsoft Foundation Classes)中的一个方法,用于在设备上下文(Device Context)中实现逻辑调色板到物理调色板的映射。这个方法的原型为:UINT RealizePalette();这个方法没有参数,它返回已经被实现的逻辑调色板中的颜色数目。调色板是用于映射颜色的表,它在图形编程中用于处理有限的颜色集合。RealizePalette 方法在使用带有256个或更少颜色的设备上下文时非常有用,特别是在使用256色模式或者调色板设备时。使用示例:CDC* pDC = GetDC();if (pDC->GetDeviceCaps(RASTERCAPS) & RC_PALETTE) { // 如果设备支持调色板 UINT nColors = pDC->RealizePalette(); if (nColors > 0) { // 逻辑调色板已经在设备上实现 // 可以在此处进行绘图等操作 }}ReleaseDC(pDC);在这个例子...
MFC CDC 类 公共方法:CDC::PolyPolyline
CDC::PolyPolyline 是 MFC(Microsoft Foundation Classes)中的一个方法,用于在设备上下文(Device Context)中绘制多个折线,每个折线由一个顶点数组定义。这个方法的原型为:BOOL PolyPolyline( const POINT* lpPoints, const DWORD* lpPolyPoints, DWORD nCount);参数解释: lpPoints:一个 POINT 数组,表示所有折线的顶点坐标。数组中的顶点按照折线的顺序排列。 lpPolyPoints:一个 DWORD 数组,表示每个折线的顶点数量。 nCount:折线的数量。这个方法绘制由 lpPoints 和 lpPolyPoints 数组定义的多个折线。如果折线成功绘制,返回非零值;否则返回零。使用示例:// 假设有两条折线,每条折线有四个顶点POINT points[] = { {10, 10}, {50, 10}, {50, 50}, {10, 50}, {60, 60}, {100, 60}, {100, 1...
MFC CDC 类 公共方法:CDC::PolyPolygon
CDC::PolyPolygon 是 MFC(Microsoft Foundation Classes)中的一个方法,用于在设备上下文(Device Context)中绘制多个多边形,每个多边形由一个顶点数组定义。这个方法的原型为:BOOL PolyPolygon( const POINT* lpPoints, const INT* lpPolyCounts, int nCount);参数解释: lpPoints:一个 POINT 数组,表示所有多边形的顶点坐标。数组中的顶点按照多边形的顺序排列。 lpPolyCounts:一个 INT 数组,表示每个多边形的顶点数量。 nCount:多边形的数量。这个方法绘制由 lpPoints 和 lpPolyCounts 数组定义的多个多边形。如果多边形成功绘制,返回非零值;否则返回零。使用示例:// 假设有两个多边形,每个多边形有四个顶点POINT points[] = { {10, 10}, {50, 10}, {50, 50}, {10, 50}, {60, 60}, {100, 60}, {100,...
MFC CDC 类 公共方法:CDC::PolylineTo
CDC::PolylineTo 是 MFC(Microsoft Foundation Classes)中的一个方法,用于在设备上下文(Device Context)中绘制一系列连接的线段,从当前位置开始绘制。这个方法的原型为:BOOL PolylineTo( const POINT* lpPoints, int nCount);参数解释: lpPoints:一个 POINT 数组,表示绘制线段的终点坐标。 nCount:顶点的数量。这个方法绘制由 lpPoints 数组定义的线段,连接到当前位置。如果线段成功绘制,返回非零值;否则返回零。使用示例:// 假设有一个 POINT 数组定义线段的终点坐标POINT points[] = { {50, 10}, {50, 50}, {10, 50}};// 获取顶点数量int count = sizeof(points) / sizeof(points[0]);// 在设备上下文中绘制线段pDC->MoveTo(10, 10); // 设置起始点pDC->PolylineTo(points, count);在这...
MFC CDC 类 公共方法:CDC::Polyline
CDC::Polyline 是 MFC(Microsoft Foundation Classes)中的一个方法,用于在设备上下文(Device Context)中绘制一系列连接的线段,形成折线。这个方法的原型为:BOOL Polyline( const POINT* lpPoints, int nCount);参数解释: lpPoints:一个 POINT 数组,表示折线的顶点坐标。 nCount:顶点的数量。这个方法绘制由 lpPoints 数组定义的折线,顶点按照数组中的顺序连接。如果折线成功绘制,返回非零值;否则返回零。例如,如果你有一个 CDC 对象(假设为 pDC),你可以这样使用 Polyline 方法:// 假设有一个 POINT 数组定义折线的顶点坐标POINT points[] = { {10, 10}, {50, 10}, {50, 50}, {10, 50}};// 获取顶点数量int count = sizeof(points) / sizeof(points[0]);// 在设备上下文中绘制折线pDC->Polyline(poin...
MFC CDC 类 公共方法:CDC::Polygon
CDC::Polygon 是 MFC(Microsoft Foundation Classes)中的一个方法,用于在设备上下文(Device Context)中绘制一个多边形。这个方法的原型为:BOOL Polygon( const POINT* lpPoints, int nCount);参数解释: lpPoints:一个 POINT 数组,表示多边形的顶点坐标。 nCount:顶点的数量。这个方法绘制由 lpPoints 数组定义的多边形,首尾相连形成闭合图形。如果多边形成功绘制,返回非零值;否则返回零。例如,如果你有一个 CDC 对象(假设为 pDC),你可以这样使用 Polygon 方法:// 假设有一个 POINT 数组定义多边形的顶点坐标POINT points[] = { {10, 10}, {50, 10}, {50, 50}, {10, 50}};// 获取顶点数量int count = sizeof(points) / sizeof(points[0]);// 在设备上下文中绘制多边形pDC->Polygon(points, count...
MFC CDC 类 公共方法:CDC::PolyDraw
CDC::PolyDraw 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于在设备上绘制多边形。这个方法的签名如下:BOOL PolyDraw( const POINT* lpPoints, const BYTE* lpTypes, int nCount);这个方法的作用是根据提供的点坐标和类型信息,在设备上绘制一个多边形。参数说明如下: lpPoints:指向一个POINT结构数组的指针,表示多边形的顶点坐标。 lpTypes:指向一个BYTE数组的指针,表示多边形的线段类型。每个元素对应一个线段,可以是 PT_MOVETO、PT_LINETO 或者 PT_BEZIERTO。 nCount:表示点的数量,也表示类型数组的元素数量。函数返回一个 BOOL 类型的值,表示操作是否成功。这个方法主要用于绘制复杂的图形,可以包含直线和贝塞尔曲线等不同类型的线段。在使用时,你需要提供一组点坐标和相应的线段类型,然后调用 PolyDraw 方法进行绘制。例如:CDC dc; // 假设已经创建了设备上下文对象POINT points[] =...
MFC CDC 类 公共方法:CDC::PolyBezierTo
CDC::PolyBezierTo 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于在设备上下文(Device Context,简称DC)中绘制一条由多个贝塞尔曲线连接而成的路径,其中每一段贝塞尔曲线由两个端点和一个控制点定义。以下是 CDC::PolyBezierTo 方法的简要说明:BOOL PolyBezierTo( const POINT* lppt, // 指向一个 POINT 结构数组的指针,其中包含贝塞尔曲线的端点坐标 DWORD nCount // POINT 结构数组中的点数,每个贝塞尔曲线需要三个点);参数说明: lppt:指向一个包含贝塞尔曲线端点坐标的 POINT 结构数组的指针。每个贝塞尔曲线需要三个点,因此数组大小应该是 nCount * 3。 nCount:lppt 数组中的点数,即贝塞尔曲线的数量。请注意,每个贝塞尔曲线需要三个点。返回值: 如果函数成功绘制路径,则返回非零值;否则返回零。示例代码:CDC* pDC = GetDC(); // 获取设备上下文POINT points[] =...
MFC CDC 类 公共方法:CDC::PolyBezier
CDC::PolyBezier 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于在设备上下文(Device Context,简称DC)中绘制一条由多个贝塞尔曲线组成的路径。以下是 CDC::PolyBezier 方法的简要说明:BOOL PolyBezier( const POINT* lppt, // 指向一个 POINT 结构数组的指针,其中包含贝塞尔曲线的端点坐标 int cPoints // POINT 结构数组中的点数,每个贝塞尔曲线需要四个点);参数说明: lppt:指向一个包含贝塞尔曲线端点坐标的 POINT 结构数组的指针。每个贝塞尔曲线需要四个点,因此数组大小应该是 cPoints * 4。 cPoints:lppt 数组中的点数,即贝塞尔曲线的数量。请注意,每个贝塞尔曲线需要四个点。返回值: 如果函数成功绘制路径,则返回非零值;否则返回零。示例代码:CDC* pDC = GetDC(); // 获取设备上下文POINT points[] = { {10, 10}, {50, 50}, {100, ...