在本机窗口中托管Windows窗体控件,窗口类=“静态”

时间:2009-12-02 19:46:48

标签: winforms winforms-interop

我需要为本机应用程序(Visual Studio)提供Windows窗体控件 所以我创建了一个控件并提供了它的句柄。

然后,当我使用Spy ++检查本机窗口时,我看到我的控件被包含在窗口类=“静态”和标题“这是静态!”的附加“控件”中。我有几个问题:

  1. 通过托管窗口发送给我的控件的调整大小事件必须重新发送到“静态”,因此它也会被调整大小(否则我的控件部分隐藏在静态大小内)。
  2. 静态没有WS_EX_CONTROLPARENT,导致KB149501出现(简而言之,整个应用程序在丢失焦点时挂起)。
  3. 如果我应用WS_EX_CONTROLPARENT,则静态列表框会停止重绘。
  4. 我想我做错了什么,但我不确定是什么。 Google没有帮助,因为static也是一个C#关键字,所以它经常出现在WinForms结果中。

1 个答案:

答案 0 :(得分:0)

我主要使用DoubleBuffered = True来解决重绘问题,所以可能就是这样 我仍然认为我做错了什么,但至少它现在有效。