代码之家  ›  专栏  ›  技术社区  ›  Icemanind

使winform所有者可绘制

  •  0
  • Icemanind  · 技术社区  · 15 年前

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

    1 回复  |  直到 15 年前
        1
  •  2
  •   ileon    14 年前

    我认为你应该放弃 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;
        }
    }
    
    推荐文章