代码之家  ›  专栏  ›  技术社区  ›  Paul Sasik

如何在.NET中绘制托管控件的“顶部”?

  •  3
  • Paul Sasik  · 技术社区  · 16 年前

    我在一个简单的窗体生成器上工作,它托管“live”.NET对象,并执行自己的绘制指南(网格)、对象选择等。事情进展顺利,但正如您在下面看到的,自定义绘制并不完全是最佳的,因为它总是在托管控件后面绘制。

    Selection Sample http://img405.imageshack.us/img405/8572/selectsample01.png

    如何修改绘制逻辑以绘制所有托管控件的“顶部”?

    如果您的SO视图中缺少图像,可以在此处查看: http://img405.imageshack.us/img405/8572/selectsample01.png

    2 回复  |  直到 16 年前
        1
  •  2
  •   Hans Passant    16 年前

    这不是Z顺序问题。问题是不能在另一个窗口的客户矩形内绘制。您的案例中的“文本”窗口。像“窗体”这样的窗口打开了WS\u CLIPCHILDREN样式标志。

    我也用了类似的伎俩 this thread ,则可以利用代码。你也应该看看这个 magazine article.

        2
  •  0
  •   user113476 user113476    16 年前

    从截图上看,托管控件仍然有焦点,这意味着它应该被绘制在前面。

    从托管控件中移除焦点,并确保z顺序设置正确。

    如果没有z顺序,那么需要实现一个。