GDI正在无法控制

时间:2012-07-05 07:41:53

标签: mfc controls gdi

我正在编写MFC应用程序。我在Form对话框中创建了一个CStatic派生控件,以便在启动程序时直接看到该窗体。我现在使用派生类中的OnPaint()方法绘制此控件。到目前为止,一切正常。 然而,奇怪的是,图纸不会被夹在控件之外。相反,如果我绘制了很大的东西,整个表格都会被绘制。根据我的理解,只应该描绘控件。

提前致谢 安德烈亚斯D.

2 个答案:

答案 0 :(得分:2)

@dlb现在就知道了。

CDC* pDC = GetDC();
CRect rClient();
GetClientRect(rClient);
CRgn ClipRgn;
if (ClipRgn.CreateRectRgnIndirect(&rClient))
{
    pDC->SelectClipRgn(&ClipRgn);
}


// Drawing content


pDC->SelectClipRgn(NULL);
ReleaseDC(pDC);

感谢您的回答

答案 1 :(得分:1)

检查您的控件是否正在使用“未剪辑的设备上下文”选项。您可以通过获取控制标志来检查这一点。 您也可以调用IsOptimizedDraw(),如果返回true,那么您的绘图可以在控件之外绘制。