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

在给定IntPtr句柄的情况下更改窗口背景色

  •  2
  • zadam  · 技术社区  · 17 年前

    在c#中,我有一个窗口句柄(IntPtr),我想更改该窗口的背景色。我该怎么做?

    我可以获得该句柄的GDI图形对象,如下所示:

    所以我应该可以从这里改变背景颜色?

    我还想确保即使在窗口移动、调整大小、重新绘制等之后,背景色仍然保持不变。

    2 回复  |  直到 17 年前
        1
  •  2
  •   Charlie    17 年前

    我不认为有一种方法可以直接使用本机(C/C++)窗口来实现这一点(即,没有本机GDI模拟控件。BackColor)。

    WM_CTLCOLOR WM_PAINT WM_ERASEBKGND 相反

    尝试 this thread on programmersheaven.com 有关如何从C#为本机窗口子类化的建议。

        2
  •  0
  •   Kepboy    17 年前

    类似于。。。

        Control someControl = Control.FromHandle(myHandle);
        someControl.BackColor = SystemColors.Black;