制作winform表单所有者drawable

时间:2010-10-03 21:01:19

标签: c# class ownerdrawn

我有一个表单,我试图覆盖WndProc子程序。我正在使用GetDCEx来获取表单的DC句柄。根据Microsoft关于使用GetDCEx的文档,我的表单必须将CS_OWNDC或CS_PARENTDC标志设置为我的窗口类才能使用GetDCEx。根据Spy ++,我的窗口没有这些类属性。我的问题是,我如何分配CS_OWNDC或使表单所有者可绘制,以便我可以在我的程序中使用GetDCEx?顺便说一下,我正在使用C#。

1 个答案:

答案 0 :(得分:2)

我认为您应该在代码中覆盖CreateParams,如下所示:

/// <summary>
/// Overrides the control's class style parameters.
/// </summary>
protected override CreateParams CreateParams
{
    get
    {
    Int32 CS_VREDRAW = 0x1;
    Int32 CS_HREDRAW = 0x2;
    Int32 CS_OWNDC = 0x20;
    CreateParams cp = base.CreateParams;
    cp.ClassStyle = cp.ClassStyle | CS_VREDRAW | CS_HREDRAW | CS_OWNDC | ...;
    return cp;
    }
}