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