MFC CDC 类 公共方法:CDC::GradientFill
CDC::GradientFill 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于在设备上下文中绘制渐变填充。该方法可以用于在指定区域内使用渐变颜色进行填充,从而创建平滑的颜色过渡效果。以下是 CDC::GradientFill 方法的原型:BOOL GradientFill( TRIVERTEX* pVertices, ULONG nVertices, void* pMesh, ULONG nMeshElements, DWORD dwMode);参数说明: pVertices:指向 TRIVERTEX 结构数组的指针,每个结构表示一个顶点及其颜色信息。 nVertices:TRIVERTEX 结构数组的元素数量。 pMesh:指向一个定义渐变填充区域的结构的指针,通常为 GRADIENT_RECT 或 GRADIENT_TRIANGLE。 nMeshElements:pMesh 结构数组的元素数量。 dwMode:指定填充模式,可以是 GRADIENT_FILL_RECT_H、GRADIENT_FILL_RECT_V...
MFC CDC 类 公共方法:CDC::GetWorldTransform
CDC::GetWorldTransform 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于获取设备上下文的世界变换矩阵。世界变换矩阵通常用于将图形从逻辑坐标空间转换到设备坐标空间。具体而言,CDC::GetWorldTransform 的原型如下:int CDC::GetWorldTransform( XFORM* pXform) const;其中,XFORM 是一个结构体,表示一个二维坐标变换矩阵。GetWorldTransform 方法通过参数 pXform 返回设备上下文的当前世界变换矩阵。示例用法可能如下:CDC dc; // 假设已创建一个设备上下文对象XFORM worldTransform;dc.GetWorldTransform(&worldTransform);// 现在 worldTransform 中包含了设备上下文的当前世界变换矩阵需要注意的是,这只是一个简单的示例,实际应用中可能需要根据具体的需求进行更复杂的处理。
MFC CDC 类 公共方法:CDC::GetWindowOrg
CDC::GetWindowOrg 是 MFC 中 CDC(Device Context 类)的一个公共方法,用于获取设备上下文的窗口原点坐标。窗口原点是设备上下文中的坐标系统的起始点,通常是左上角。以下是该方法的简要说明:CPoint CDC::GetWindowOrg() const;这个方法返回一个 CPoint 对象,其中包含了设备上下文的窗口原点的 x 和 y 坐标。CPoint 是 MFC 中表示点坐标的类。示例代码:CDC dc; // 假设已经创建了设备上下文对象CPoint windowOrg = dc.GetWindowOrg();int xCoordinate = windowOrg.x; // 获取窗口原点的 x 坐标int yCoordinate = windowOrg.y; // 获取窗口原点的 y 坐标这个方法通常在绘图操作中使用,以便了解当前绘图区域的坐标系统的原点位置,从而进行相应的绘图计算。
MFC CDC 类 公共方法:CDC::GetWindowExt
CDC::GetWindowExt 是 MFC 中 CDC(Device Context 类)的一个公共方法,用于获取设备上下文的窗口范围的大小。窗口范围是指设备上下文中可见部分的大小,通常与显示窗口的大小相对应。以下是该方法的简要说明:CSize CDC::GetWindowExt() const;这个方法返回一个 CSize 对象,其中包含了设备上下文的窗口范围的宽度和高度。CSize 是 MFC 中表示大小的类。示例代码:CDC dc; // 假设已经创建了设备上下文对象CSize windowExt = dc.GetWindowExt();int windowWidth = windowExt.cx; // 获取窗口范围的宽度int windowHeight = windowExt.cy; // 获取窗口范围的高度这个方法通常在绘图操作中使用,以便了解当前绘图区域的大小,从而进行相应的绘图计算。
MFC CDC 类 公共方法:CDC::GetViewportOrg
CDC::GetViewportOrg 是 MFC(Microsoft Foundation Classes)中的一个成员函数,用于获取设备上下文(Device Context,CDC)的视口原点坐标。CPoint GetViewportOrg( ) const;这个方法返回一个 CPoint 对象,表示设备上下文的视口原点坐标。视口原点是指设备上下文中视口的左上角坐标,通常是相对于设备上下文的原点((0, 0))的偏移量。例如,如果你有一个 CDC 对象 pDC,你可以使用以下方式调用 GetViewportOrg 方法:CPoint ptViewportOrg = pDC->GetViewportOrg();int x = ptViewportOrg.x; // 获取视口原点的 X 坐标int y = ptViewportOrg.y; // 获取视口原点的 Y 坐标这样就能获取到设备上下文的视口原点坐标。
MFC CDC 类 公共方法:CDC::GetViewportExt
CDC::GetViewportExt 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于获取设备上下文(Device Context,CDC)的视口(viewport)的当前水平和垂直扩展。视口扩展是指逻辑坐标系统中 x 和 y 方向上的单位长度。这个方法的声明如下:CSize GetViewportExt() const;该方法返回一个 CSize 对象,其中包含当前视口的水平和垂直扩展。你可以使用 CSize 对象的成员函数 cx 和 cy 分别获取水平和垂直方向的扩展值。以下是一个简单的示例代码,演示如何使用 GetViewportExt 方法:// 假设 pDC 是一个 CDC 对象的指针CSize viewportExt = pDC->GetViewportExt();int horizontalExt = viewportExt.cx;int verticalExt = viewportExt.cy;// 现在,horizontalExt 和 verticalExt 包含了视口的水平和垂直扩展值请确保在调用这个方法之前,已经...
MFC CDC 类 公共方法:CDC::GetTextMetrics
CDC::GetTextMetrics 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于获取文本的度量信息。这个方法返回一个 TEXTMETRIC 结构,该结构包含了文本的各种度量属性,如字符高度、宽度、行间距等。以下是 CDC::GetTextMetrics 方法的简要说明:BOOL GetTextMetrics( LPTEXTMETRIC lptm ) const; lptm:指向 TEXTMETRIC 结构的指针,用于存储文本度量信息。CDC::GetTextMetrics 会将当前设备上下文的文本度量信息填充到传入的 TEXTMETRIC 结构中,并返回一个布尔值,指示是否成功获取文本度量信息。以下是一个简单的示例代码,演示如何使用 CDC::GetTextMetrics 方法:CClientDC dc(this); // 使用设备上下文TEXTMETRIC tm;// 获取文本度量信息if (dc.GetTextMetrics(&tm)){ // 在这里可以使用 tm 结构中的信息,例如 tm.tmHeight,...
MFC CDC 类 公共方法:CDC::GetTextFace
CDC::GetTextFace 是 MFC(Microsoft Foundation Classes)中的一个方法,用于检索当前设备上下文中的字体名称。方法声明如下:int GetTextFace( _In_ int nCount, _Out_writes_opt_(nCount) LPTSTR lpszFacename) const;参数说明: nCount:指定 lpszFacename 缓冲区的大小(以字符数目计算)。 lpszFacename:接收字体名称的缓冲区指针。返回值: 如果成功,返回写入缓冲区的字体名称的字符数目。 如果 nCount 参数小于设备上下文中字体名称的字符数目,返回值是负的 nCount,表示缓冲区太小。使用示例:CDC dc; // 假设已经创建了 CDC 对象TCHAR szFaceName[LF_FACESIZE];int nResult = dc.GetTextFace(LF_FACESIZE, szFaceName);if (nResult > 0) { // szFaceName 中包含设备上下文中的字体名称 TR...
MFC CDC 类 公共方法:CDC::GetTextExtentPointI
CDC::GetTextExtentPointI 是 MFC(Microsoft Foundation Classes)中的一个方法,用于获取多个字符的文本在设备上的大小。该方法的声明如下:BOOL GetTextExtentPointI( _In_reads_(nCount) LPCTSTR lpszString, _In_ int nCount, _Out_ LPSIZE lpSize) const;这个方法的作用是测量文本字符串在设备上的宽度和高度,并将结果存储在 LPSIZE 结构中,该结构包含 cx 成员(宽度)和 cy 成员(高度)。参数说明: lpszString:要测量的文本字符串。 nCount:字符串的字符数目。 lpSize:一个指向 SIZE 结构的指针,用于存储测量结果。使用示例:CDC dc; // 假设已经创建了 CDC 对象CString strText = _T("Hello, World!");int nCount = strText.GetLength();SIZE size...
MFC CDC 类 公共方法:CDC::GetTextExtentExPointI
CDC::GetTextExtentExPointI 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于获取带制表符和换行符的文本的宽度。该方法返回一个 BOOL 值,表示是否成功获取文本的宽度信息。如果成功,宽度信息将保存在 lpnFit 和 lpnDx 参数指定的缓冲区中。以下是 GetTextExtentExPointI 方法的简化原型:BOOL GetTextExtentExPointI( _In_reads_(cchString) const UINT *lpnString, _In_ int cchString, _Out_ int *lpnFit, _Out_writes_opt_(cchString) LPINT lpnDx, _In_ int nMaxExtent, _Out_opt_ LPINT lpnMaxExtent, _Out_opt_ LPSIZE lpSize);这个方法的参数说明如下: lpnString: 一个指向 UINT 数组的指针,包含要测量的文本字符串。每个元素代表一个字符。...
MFC CDC 类 公共方法:CDC::GetTextExtent
CDC::GetTextExtent 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于获取不带制表符的文本的宽度和高度。该方法返回一个 CSize 对象,其中包含文本的逻辑宽度和高度。以下是一个简单的示例,演示如何使用 GetTextExtent 方法:CDC dc; // 假设已经创建了设备上下文对象// 设置字体CFont font;font.CreatePointFont(120, _T("Arial"));dc.SelectObject(&font);// 要测量的文本CString strText = _T("Hello, MFC!");// 获取文本的逻辑宽度和高度CSize size = dc.GetTextExtent(strText);// 输出文本的逻辑宽度和高度TRACE(_T("Text Width: %d, Height: %d\n"), size.cx, size.cy);在这个示例中,首先创建了一个设备上下文对象 dc,然后通过 GetTextE...
MFC CDC 类 公共方法:CDC::GetTextColor
CDC::GetTextColor 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于获取设备上下文的当前文本颜色。文本颜色是在绘制文本时使用的颜色。这个方法返回一个 COLORREF 类型的值,表示当前设备上下文的文本颜色。COLORREF 是一个包含红、绿、蓝颜色分量的整数值。以下是一个简单的示例,演示如何使用 GetTextColor 方法:CDC dc; // 假设已经创建了设备上下文对象// 获取当前设备上下文的文本颜色COLORREF textColor = dc.GetTextColor();// 提取颜色分量BYTE red = GetRValue(textColor);BYTE green = GetGValue(textColor);BYTE blue = GetBValue(textColor);// 输出颜色信息TRACE(_T("Current Text Color: RGB(%d, %d, %d)\n"), red, green, blue);在这个示例中,首先创建了一个设备上下文对象 dc,然后...
MFC CDC 类 公共方法:CDC::GetTextCharacterExtra
CDC::GetTextCharacterExtra 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于获取设备上下文的文本字符间距。文本字符间距定义了每个字符之间的额外空间,可以为负值表示字符之间的紧凑排列,为正值表示字符之间的额外间距。这个方法返回一个整数,表示当前设备上下文的文本字符间距。以下是一个简单的示例,演示如何使用 GetTextCharacterExtra 方法:CDC dc; // 假设已经创建了设备上下文对象// 获取当前设备上下文的文本字符间距int charExtra = dc.GetTextCharacterExtra();// 输出文本字符间距信息TRACE(_T("Current Text Character Extra: %d\n"), charExtra);在这个示例中,首先创建了一个设备上下文对象 dc,然后通过 GetTextCharacterExtra 方法获取了当前设备上下文的文本字符间距。然后输出相应的信息。文本字符间距是在绘制文本时调整字符之间的距离的一种方式,可以根据需要调整字...
MFC CDC 类 公共方法:CDC::GetTextAlign
CDC::GetTextAlign 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于获取设备上下文的文本对齐方式。文本对齐方式定义了绘制文本时文本的对齐方式,包括水平和垂直方向。这个方法返回一个整数,表示当前设备上下文的文本对齐方式。返回值是一个与 SetTextAlign 方法中所设置的常量之一相对应的值。常见的文本对齐方式包括: TA_LEFT: 文本左对齐。 TA_RIGHT: 文本右对齐。 TA_CENTER: 文本居中对齐。 TA_TOP: 文本顶部对齐。 TA_BOTTOM: 文本底部对齐。 TA_BASELINE: 文本基线对齐。以下是一个简单的示例,演示如何使用 GetTextAlign 方法:CDC dc; // 假设已经创建了设备上下文对象// 获取当前设备上下文的文本对齐方式UINT textAlign = dc.GetTextAlign();// 判断当前文本对齐方式并输出信息if (textAlign & TA_LEFT){ TRACE(_T("Current Text Align: TA_L...
MFC CDC 类 公共方法:CDC::GetTabbedTextExtent
在 MFC(Microsoft Foundation Classes)中,CDC::GetTabbedTextExtent 是一个公共方法,用于获取包含制表符的文本的宽度。该方法返回一个 CSize 对象,其中包含文本的逻辑宽度和高度。以下是一个简单的示例,演示如何使用 GetTabbedTextExtent 方法:CDC dc; // 假设已经创建了设备上下文对象// 设置字体CFont font;font.CreatePointFont(120, _T("Arial"));dc.SelectObject(&font);// 设置制表符的宽度int nTabStops = 4; // 设置制表符个数DWORD rgdx[] = { 100, 200, 300, 400 }; // 设置制表符的宽度,以逻辑单位为单位// 要测量的文本CString strText = _T("Tab1\tTab2\tTab3\tTab4");// 获取文本的宽度CSize size = dc.GetTabbedTextExtent(strText, nT...
MFC CDC 类 公共方法:CDC::GetStretchBltMode
CDC::GetStretchBltMode 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于获取设备上下文的拉伸位块传送(StretchBlt)模式。拉伸位块传送是指在图像传送时改变图像的大小。这个方法返回一个整数,表示当前设备上下文的拉伸位块传送模式。返回值是一个与 SetStretchBltMode 方法中所设置的常量之一相对应的值。常见的拉伸位块传送模式包括: COLORONCOLOR: 按颜色进行拉伸位块传送。 HALFTONE: 使用最近邻插值法进行拉伸位块传送,适合图像缩小。以下是一个简单的示例,演示如何使用 GetStretchBltMode 方法:CDC dc; // 假设已经创建了设备上下文对象// 获取当前设备上下文的拉伸位块传送模式int stretchBltMode = dc.GetStretchBltMode();// 判断当前拉伸位块传送模式并输出信息switch (stretchBltMode){case COLORONCOLOR: TRACE(_T("Current StretchBlt Mo...
MFC CDC 类 公共方法:CDC::GetSafeHdc
CDC::GetSafeHdc 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于获取与设备上下文相关的 GDI 句柄。这个方法返回一个 HDC(设备上下文句柄),可用于在使用 GDI 函数时传递给它们。以下是一个简单的示例,演示如何使用 GetSafeHdc 方法:CDC dc; // 假设已经创建了设备上下文对象// 获取与设备上下文相关的 GDI 句柄HDC hdc = dc.GetSafeHdc();// 使用 GDI 函数,例如绘制矩形Rectangle(hdc, 10, 10, 100, 100);在这个示例中,首先创建了一个设备上下文对象 dc,然后通过 GetSafeHdc 方法获取了与该设备上下文相关的 GDI 句柄 hdc。然后,可以使用这个 hdc 句柄调用 GDI 函数,如 Rectangle 来进行绘图操作。使用 GetSafeHdc 而不是 GetHdc 的好处在于,GetSafeHdc 返回的句柄是“安全”的,即使设备上下文对象被销毁,这个句柄仍然有效。而 GetHdc 返回的句柄在设备上下文对象被销毁后可能变为无...
MFC CDC 类 公共方法:CDC::GetROP2
CDC::GetROP2 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于获取设备上下文的二元光栅操作(Raster Operation,ROP)模式。ROP 模式定义了在绘制图形时如何将新的颜色与目标颜色组合在一起。这个方法返回一个整数,表示当前设备上下文的 ROP 模式。返回值是一个与 SetROP2 方法中所设置的常量之一相对应的值。常见的 ROP 模式包括: R2_BLACK: 将目标颜色设为黑色。 R2_WHITE: 将目标颜色设为白色。 R2_COPYPEN: 使用源颜色。 R2_NOT: 对目标颜色取反。 R2_MASKPEN: 使用源颜色与目标颜色的逻辑与操作结果。 R2_MASKNOTPEN: 使用源颜色与目标颜色的逻辑与非操作结果。以下是一个简单的示例,演示如何使用 GetROP2 方法:CDC dc; // 假设已经创建了设备上下文对象// 获取当前设备上下文的 ROP 模式int ropMode = dc.GetROP2();// 判断当前 ROP 模式并输出信息switch (ropMode){case R2_BLA...
MFC CDC 类 公共方法:CDC::GetPolyFillMode
CDC::GetPolyFillMode 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于获取设备上下文的多边形填充模式。多边形填充模式指定了在绘制多边形时使用的填充规则。这个方法返回一个整数,表示当前设备上下文的多边形填充模式。返回值可以是以下两个常量之一: WINDING: 使用 winding rule 进行填充。即,对于多边形中的任意点,射线与多边形交点的数量(包括端点)如果是奇数,则该点在多边形内;如果是偶数,则该点在多边形外。 ALTERNATE: 使用 alternate (even-odd) rule 进行填充。即,对于多边形中的任意点,射线与多边形交点的数量(包括端点)如果是奇数,则该点在多边形内;如果是偶数,则该点在多边形外。以下是一个简单的示例,演示如何使用 GetPolyFillMode 方法:CDC dc; // 假设已经创建了设备上下文对象// 获取当前设备上下文的多边形填充模式int polyFillMode = dc.GetPolyFillMode();// 判断当前填充模式并输出信息if (polyFil...
MFC CDC 类 公共方法:CDC::GetPixel
在 MFC(Microsoft Foundation Classes)中,CDC::GetPixel 是一个公共方法,用于获取指定点的颜色信息。这个方法返回一个 COLORREF 类型的值,表示指定点的颜色。下面是一个简单的示例,演示如何使用 GetPixel 方法:CDC dc; // 假设已经创建了设备上下文对象// 假设要获取点 (100, 100) 处的颜色CPoint point(100, 100);// 获取指定点的颜色COLORREF color = dc.GetPixel(point);// 输出颜色信息BYTE red = GetRValue(color);BYTE green = GetGValue(color);BYTE blue = GetBValue(color);TRACE(_T("Color at point (%d, %d): RGB(%d, %d, %d)\n"), point.x, point.y, red, green, blue);在这个示例中,首先创建了一个设备上下文对象 dc,然后通过 GetPixel 方法获取了坐标为 ...