MFC CDC 类 公共方法:CDC::DrawFocusRect
在 MFC(Microsoft Foundation Classes)中,CDC::DrawFocusRect 是 CDC 类的一个公共方法,用于在设备上下文上绘制一个具有焦点效果的矩形。下面是 CDC::DrawFocusRect 方法的简要说明:BOOL DrawFocusRect(LPCRECT lpRect);这个方法用于在设备上下文中绘制一个矩形,给人一种焦点(通常是虚线框)的视觉效果。参数 lpRect 是一个指向 RECT 结构的指针,指定了矩形的位置和大小。使用示例:CDC myDC; // 假设已经创建了CDC对象并进行了初始化RECT myRect = {10, 10, 100, 100};myDC.DrawFocusRect(&myRect);这将在 myDC 的设备上下文中绘制一个带有焦点效果的矩形,通常是虚线框,用于表示焦点当前在这个矩形区域上。DrawFocusRect 方法通常用于绘制控件或窗口中当前拥有焦点的区域,提供焦点可视化的反馈。
MFC CDC 类 公共方法:CDC::DrawEdge
在MFC(Microsoft Foundation Classes)中,CDC::DrawEdge 是 CDC 类的一个公共方法,用于在设备上下文上绘制带有边缘效果的矩形或者窗口。下面是 CDC::DrawEdge 方法的简要说明:BOOL DrawEdge(LPRECT qrc, UINT edge, UINT grfFlags);这个方法用于绘制一个带有边缘效果的矩形或窗口。参数包括 qrc,一个 RECT 结构,指定了矩形的位置和大小,edge,指定了要绘制的边缘类型,以及 grfFlags,指定了一些标志位,用于调整绘制的行为。使用示例:CDC myDC; // 假设已经创建了CDC对象并进行了初始化RECT myRect = {10, 10, 100, 100};UINT edgeType = BDR_RAISEDINNER | BDR_SUNKENOUTER; // 定义边缘类型myDC.DrawEdge(&myRect, edgeType, BF_RECT);这将在 myDC 的设备上下文中绘制一个带有边缘效果的矩形,边缘效果由 edgeType 参数指定,B...
MFC CDC 类 公共方法:CDC::DrawDragRect
在 MFC(Microsoft Foundation Classes)中,CDC::DrawDragRect 是 CDC 类的一个公共方法,用于在设备上下文上绘制一个拖拽矩形框,通常用于实现拖拽操作的视觉反馈。下面是 CDC::DrawDragRect 方法的简要说明:void DrawDragRect(const RECT* lpRect, SIZE size, const RECT* lpRectLast, SIZE sizeLast, CBrush* pBrush = NULL, CBrush* pBrushLast = NULL);该方法用于绘制拖拽矩形框。参数包括当前矩形 lpRect,当前矩形的大小 size,上一个矩形 lpRectLast,上一个矩形的大小 sizeLast,以及用于绘制矩形框的笔刷(CBrush 对象)。使用示例:CDC myDC; // 假设已经创建了CDC对象并进行了初始化RECT currentRect = {10, 10, 100, 100};SIZE currentSize = {90, 90};RECT lastRect = {20, 2...
MFC CDC 类 公共方法:CDC::Draw3dRect
在MFC(Microsoft Foundation Classes)中,CDC::Draw3dRect 是 CDC 类的公共方法之一,用于在设备上下文上绘制一个矩形的三维效果。下面是 CDC::Draw3dRect 方法的简要说明:void Draw3dRect(const RECT& rect, COLORREF clrTopLeft, COLORREF clrBottomRight);这个方法用于在设备上下文上绘制一个矩形,模拟一个带有三维效果的边框。rect 参数指定了矩形的位置和大小,clrTopLeft 参数指定了左上角边框的颜色,clrBottomRight 参数指定了右下角边框的颜色。使用示例:CDC myDC; // 假设已经创建了CDC对象并进行了初始化RECT myRect = {10, 10, 100, 100};COLORREF topLeftColor = RGB(255, 0, 0); // 红色COLORREF bottomRightColor = RGB(0, 0, 255); // 蓝色myDC.Draw3dRect(myRect, to...
MFC CDC 类 公共方法:CDC::DPtoLP
在MFC中,CDC::DPtoLP 是 CDC 类的公共方法,用于将逻辑坐标转换为物理坐标。下面是 CDC::DPtoLP 方法的简要说明:void DPtoLP(LPPOINT lpPoints, int nCount = 1) const;这个方法将 lpPoints 指向的 POINT 结构(或数组)中的逻辑坐标转换为与设备相关的物理坐标。参数 nCount 指定转换的点的数量。使用示例:CDC myDC; // 假设已经创建了CDC对象并进行了初始化POINT points[2] = { {100, 200}, {300, 400} };myDC.DPtoLP(points, 2);// 现在points数组中的坐标已经是与设备相关的物理坐标这个方法通常在绘制操作中使用,以便将逻辑坐标转换为设备相关的坐标,以确保在不同分辨率的显示设备上显示正确。需要注意的是,你必须在实际的设备上下文上调用这个方法,以便使用正确的设备信息进行转换。
MFC CDC 类 公共方法:CDC::DPtoHIMETRIC
在MFC中,CDC::DPtoHIMETRIC 是 CDC 类的公共方法,用于将逻辑坐标转换为 HIMETRIC(高度度量单位)。高度度量单位是一种设备无关的测量单位,通常用于打印和显示设备的分辨率无关性。下面是 CDC::DPtoHIMETRIC 方法的简要说明:void DPtoHIMETRIC(LPPOINT lpPoints, int nCount = 1) const;这个方法将 lpPoints 指向的 POINT 结构(或数组)中的逻辑坐标转换为 HIMETRIC 单位。参数 nCount 指定转换的点的数量。使用示例:CDC myDC; // 假设已经创建了CDC对象并进行了初始化POINT points[2] = { {100, 200}, {300, 400} };myDC.DPtoHIMETRIC(points, 2);// 现在points数组中的坐标已经是HIMETRIC单位的值这个方法通常在打印相关的操作中使用,以确保打印的输出与显示设备的分辨率无关。在使用这个方法时,需要注意的是,你必须在实际的设备上下文上调用这个方法,以便使用正确的设备信息进行转换。
MFC CDC 类 公共方法:CDC::Detach
在MFC中,CDC::Detach 是 CDC 类的公共方法。这个方法用于将 CDC 对象与设备上下文句柄的关联解除,而不释放设备上下文本身。通常,这是在你希望自己负责管理设备上下文生命周期时使用的方法。下面是 CDC::Detach 方法的简要说明:virtual HDC Detach();这个方法返回与 CDC 对象关联的设备上下文句柄(HDC),并将 CDC 对象的内部状态重置,以防止在 CDC 对象的析构函数中释放设备上下文。调用者负责管理返回的设备上下文句柄的生命周期。使用示例:CDC myDC; // 假设已经创建了CDC对象并进行了初始化HDC hDC = myDC.Detach();// 现在你负责管理hDC的生命周期,确保在不再需要时释放它// 当你不再需要hDC时,可能需要在适当的地方调用DeleteDCif (hDC != NULL) ::DeleteDC(hDC);这样做的目的是允许你在不销毁设备上下文的情况下,让 CDC 对象正常离开作用域而不引发设备上下文的二次释放。
MFC CDC 类 公共方法:CDC::CreateIC
在 MFC(Microsoft Foundation Classes)中,CDC::CreateIC 方法用于创建一个与指定驱动程序关联的设备上下文(Device Context,简称DC)。这个方法的定义如下:BOOL CreateIC( LPCTSTR lpszDriver, LPCTSTR lpszDevice, LPCTSTR lpszOutput, const DEVMODE* lpInitData);参数说明: lpszDriver:指定驱动程序的名称。 lpszDevice:指定设备的名称。 lpszOutput:指定输出设备的名称。 lpInitData:指向一个 DEVMODE 结构的指针,用于指定设备模式。CreateIC 方法允许你创建一个指定驱动程序的设备上下文,与 CreateDC 方法类似。CreateIC 在内部调用 CreateDC,并返回一个非零值表示成功。以下是一个简单的示例,演示了如何在 MFC 中使用 CreateIC 方法:CDC dc;if (dc.CreateIC(_T("DISPLAY"), nullptr, ...
MFC CDC 类 公共方法:CDC::CreateCompatibleDC
在 MFC(Microsoft Foundation Classes)中,CDC::CreateCompatibleDC 是用于创建与指定设备上下文兼容的设备上下文的方法。这个方法的定义如下:BOOL CreateCompatibleDC( CDC* pDC);参数说明: pDC:指向另一个设备上下文对象的指针,新创建的设备上下文将与该设备上下文兼容。CreateCompatibleDC 方法用于创建一个与指定设备上下文兼容的设备上下文,以便在不同的设备上下文之间共享绘图资源,例如位图。这对于在内存中进行绘图操作或双缓冲绘图等场景非常有用。以下是一个简单的示例,演示了如何在 MFC 中使用 CreateCompatibleDC 方法:CDC dc;CDC memDC;// 创建一个与窗口设备上下文兼容的内存设备上下文memDC.CreateCompatibleDC(&dc);CBitmap bitmap;bitmap.CreateCompatibleBitmap(&dc, 100, 100);// 将位图选入内存设备上下文memDC.SelectObject(&...
MFC CDC 类 公共方法:CDC::CloseFigure
在 MFC(Microsoft Foundation Classes)中,CDC::CloseFigure 方法用于封闭当前路径的图形子路径。这个方法通常与路径(path)操作一起使用,用于连接当前点与路径的起始点,形成闭合的图形。方法的定义如下:void CloseFigure();调用 CloseFigure 后,当前点将与路径的起始点连接,形成闭合的图形。这通常在绘制多边形等需要闭合的图形时使用。以下是一个简单的示例,演示了如何在 MFC 中使用 CloseFigure 方法:CDC dc;dc.BeginPath(); // 开始定义路径dc.MoveTo(100, 100);dc.LineTo(200, 200);dc.LineTo(300, 100);dc.CloseFigure(); // 封闭路径// 在设备上下文中描绘并填充路径dc.StrokeAndFillPath();dc.EndPath(); // 结束路径的定义在这个例子中,BeginPath 开始了路径的定义,MoveTo 和 LineTo 方法定义了一些线段,然后使用 CloseFigure 封闭了...
MFC CDC 类 公共方法:CDC::Chord
在 MFC(Microsoft Foundation Classes)中,CDC::Chord 是用于在设备上下文中绘制弦的方法。弦是连接椭圆的两点的线段,Chord 方法绘制一个指定矩形区域内的椭圆的一部分,即椭圆弦。方法的定义如下:BOOL Chord( int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4);参数说明: (x1, y1) 和 (x2, y2):指定矩形的左上角和右下角。 (x3, y3) 和 (x4, y4):指定椭圆的两个端点,这两个端点通过指定的矩形连接。这个方法在设备上下文中绘制一个椭圆的一部分,具体形状由指定的矩形和两个端点决定。以下是一个简单的示例,演示了如何在 MFC 中使用 Chord 方法:CDC dc;CRect rect(10, 10, 200, 100);// 在指定矩形内绘制椭圆的一部分(椭圆弦)dc.Chord(rect, CPoint(10, 50), CPoint(200, 50));在这个例子中,Chord 方法被用于在指定的矩形内绘制一个椭圆的...
MFC CDC 类 公共方法:CDC::BitBlt
在 MFC(Microsoft Foundation Classes)中,CDC::BitBlt 是用于在设备上下文之间进行位块传输的方法。位块传输是一种从一个设备上下文复制图像到另一个设备上下文的操作。方法的定义如下:BOOL BitBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, DWORD dwRop);参数说明: x、y:目标矩形的左上角坐标。 nWidth、nHeight:目标矩形的宽度和高度。 pSrcDC:指向源设备上下文的指针。 xSrc、ySrc:源矩形的左上角坐标。 dwRop:定义位块传输的操作码(Raster Operation Code,ROP3)。BitBlt 方法用于将源矩形区域的图像复制到目标矩形区域。dwRop 参数指定了位块传输的操作码,它决定了如何合并源和目标的像素。常见的操作码包括 SRCCOPY、SRCINVERT、SRCAND 等。以下是一个简单的示例,演示了如何在 MFC 中使用 BitBlt 方法:CDC dc;CBit...
MFC CDC 类 公共方法:CDC::BeginPath
在 MFC(Microsoft Foundation Classes)中,CDC::BeginPath 是用于开始定义路径的方法。路径是一系列用于定义图形轮廓的绘图命令。BeginPath 方法用于在设备上下文中开始定义一个新的路径。方法的定义如下:void BeginPath();调用 BeginPath 后,接下来的绘图命令将用于定义新的路径。你可以使用诸如 MoveTo、LineTo、ArcTo 等方法来构建路径。一旦路径定义完成,可以使用 EndPath 来结束路径的定义。以下是一个简单的示例,演示了如何在 MFC 中使用 BeginPath 和 EndPath 方法来定义和绘制路径:CDC dc;dc.BeginPath(); // 开始定义路径dc.MoveTo(100, 100);dc.LineTo(200, 200);dc.LineTo(300, 100);dc.CloseFigure(); // 封闭路径// 绘制路径dc.StrokeAndFillPath();dc.EndPath(); // 结束路径的定义在这个例子中,BeginPath 标记了路径的开始,...
MFC CDC 类 公共方法:CDC::Attach
在 MFC(Microsoft Foundation Classes)中,CDC::Attach 方法是用于将一个现有的 Windows 设备上下文(HDC,即设备句柄)附加到 CDC 对象的方法。这个方法的定义如下:void Attach( HDC hDC);参数说明: hDC:要附加的 Windows 设备上下文的句柄。通过调用 Attach 方法,你可以将一个已经存在的设备上下文与 CDC 对象相关联,使得你可以使用 CDC 对象的成员函数来操作该设备上下文。以下是一个简单的示例,演示了如何在 MFC 中使用 Attach 方法:CDC dc;// 获取窗口的设备上下文句柄HDC hWindowDC = ::GetDC(hWnd);// 将窗口的设备上下文句柄附加到 CDC 对象dc.Attach(hWindowDC);// 在 CDC 对象上执行一些绘图操作dc.Rectangle(10, 10, 100, 100);// 分离设备上下文句柄,不再由 CDC 对象管理dc.Detach();在这个例子中,GetDC 函数用于获取窗口的设备上下文句柄,然后通过 Attach 方...
MFC CDC 类 公共方法:CDC::ArcTo
在 MFC(Microsoft Foundation Classes)中,CDC::ArcTo 方法是用于绘制弧线的函数。这个方法绘制从当前点开始到指定矩形的弧线,具体定义如下:BOOL ArcTo( LPCRECT lpRect, POINT ptStart, POINT ptEnd);参数说明: lpRect:指定一个矩形,弧线将在此矩形内绘制。 ptStart:指定弧线的起始点。 ptEnd:指定弧线的结束点。这个方法在设备上下文中绘制一条从当前点到指定矩形的弧线。弧线的形状由当前点、起始点和结束点决定。以下是一个简单的示例,演示了如何在 MFC 中使用 ArcTo 方法:CDC dc;CRect rect(10, 10, 200, 100);// 将当前点设置为矩形的左上角dc.MoveTo(rect.left, rect.top);// 绘制从当前点到指定矩形的弧线dc.ArcTo(&rect, CPoint(rect.left, rect.top + rect.Height() / 2), CPoint(rect.right, rect.top + rect....
MFC CDC 类 公共方法:CDC::Arc
在 MFC(Microsoft Foundation Classes)中,CDC::Arc 方法是用于绘制圆弧的函数。这个方法绘制一个椭圆的一部分,具体定义如下:BOOL Arc( int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4);参数说明: (x1, y1) 和 (x2, y2):矩形的左上角和右下角。 (x3, y3) 和 (x4, y4):指定椭圆的两个端点,这两个端点通过指定的矩形连接。这个方法在设备上下文中绘制一个椭圆的一部分,其形状由指定的矩形和两个端点决定。绘制的弧的起始和结束位置由指定的两个端点决定。以下是一个简单的示例,演示了如何在 MFC 中使用 Arc 方法:CDC dc;CRect rect(10, 10, 200, 100);dc.Arc(rect, CPoint(10, 50), CPoint(200, 50));在这个例子中,Arc 方法被用于在给定的矩形内绘制一部分椭圆。你可以根据实际需求调整参数以获得不同的椭圆弧效果。
MFC CDC 类 公共方法:CDC::AngleArc
在 MFC(Microsoft Foundation Classes)中,CDC::AngleArc 是用于绘制圆弧的方法。这个方法绘制一个从起始角度到终止角度的弧线,可以用于绘制扇形或部分圆。方法的定义如下:BOOL AngleArc( int x, int y, DWORD dwRadius, FLOAT fStartAngle, FLOAT fSweepAngle);参数说明: x、y:指定圆心的坐标。 dwRadius:指定圆弧的半径。 fStartAngle:指定圆弧的起始角度,单位为度。 fSweepAngle:指定圆弧的扫描角度,单位为度。这个方法在设备上下文中绘制一个圆弧,起始角度和扫描角度以度为单位。起始角度是弧线的起始点相对于圆心的角度,扫描角度是弧线从起始点到终止点的角度。以下是一个简单的示例,演示了如何在 MFC 中使用 AngleArc 方法:CDC dc;CRect rect(10, 10, 200, 200);dc.Ellipse(rect); // 画一个圆// 绘制一个从 45 度到 135 度的扇形dc.AngleArc(rect.left...
MFC CDC 类 公共方法:CDC::AlphaBlend
在 MFC(Microsoft Foundation Classes)中,CDC::AlphaBlend 是用于在设备上下文(Device Context,简称DC)中执行 Alpha 混合的方法。Alpha 混合是一种图形合成技术,允许在图形对象之间创建半透明效果。具体的方法定义如下:BOOL AlphaBlend( int xDest, int yDest, int nDestWidth, int nDestHeight, CDC* pSrcDC, int xSrc, int ySrc, int nSrcWidth, int nSrcHeight, BLENDFUNCTION blendFunction);参数说明: xDest、yDest:目标矩形的左上角坐标。 nDestWidth、nDestHeight:目标矩形的宽度和高度。 pSrcDC:指向源设备上下文的指针。 xSrc、ySrc:源矩形的左上角坐标。 nSrcWidth、nSrcHeight:源矩形的宽度和高度。 blendFunction:定义 Alpha 混合的参数,是一个 BLENDFUNCT...
MFC CDC 类 公共方法:CDC::AddMetaFileComment
在 MFC(Microsoft Foundation Classes)中,CDC::AddMetaFileComment 方法用于向设备上下文(Device Context,简称DC)中的图元文件添加注释。图元文件是一种矢量图形文件格式,它可以包含一系列绘图命令,用于描述图形。具体的方法定义如下:BOOL AddMetaFileComment( UINT nDataSize, const BYTE* pCommentData);参数说明: nDataSize:注释数据的大小,以字节为单位。 pCommentData:指向包含注释数据的缓冲区的指针。这个方法允许你在图元文件中添加任意注释数据。注释可以用于存储与图形相关的额外信息。以下是一个简单的示例,演示了如何在 MFC 中使用 AddMetaFileComment 方法:CDC dc;dc.BeginPath();dc.MoveTo(100, 100);dc.LineTo(200, 200);dc.LineTo(300, 100);dc.EndPath();// 添加注释数据BYTE commentData[] = { 0x41,...
MFC CDC 类 公共方法:CDC::AbortPath
在 MFC(Microsoft Foundation Classes)中,CDC::AbortPath 是用于放弃当前路径的方法。路径(path)是一系列绘图命令,表示一条图形的轮廓。当你开始在设备上下文(Device Context,简称DC)中创建路径时,你可以使用 AbortPath 放弃当前路径而不绘制它。方法的定义如下:BOOL AbortPath();这个方法会放弃当前路径并返回一个 BOOL 值,表示操作是否成功。通常,如果方法成功执行,返回值为非零;如果发生错误,返回值为零。以下是一个简单的示例,演示了如何在 MFC 中使用 AbortPath 方法:CDC dc;dc.BeginPath(); // 开始定义路径dc.MoveTo(100, 100);dc.LineTo(200, 200);dc.LineTo(300, 100);dc.AbortPath(); // 放弃当前路径,不绘制这段代码创建了一个路径,但在调用 AbortPath 之后,该路径被放弃,不会被绘制在设备上下文中。