【问题标题】:MFC: Make dialog always above A SMALL SET of other dialogsMFC:使对话框始终位于其他对话框的一小部分之上
【发布时间】:2011-11-30 09:49:44
【问题描述】:

Google-ing 会产生关于如何使对话框“始终位于所有内容之上”的结果。不过,这不是我想要的。

假设我有大量的对话框。在这堆对话中,考虑其中的 3 个——A、B 和 C。

我希望 C 始终位于 A 和 B 之上,而不是其余部分。换句话说,如果 C 处于活动状态,则它应该在顶部,否则它将在另一个活动对话框的下方,除非它涉及 A 和 B。

顺便说一句,A 和 B 永远不能同时出现。

这样,我设法做到这一点的唯一方法是每次都销毁 C,然后用新的父级(A 或 B,取决于谁是可见的)重新创建它。我了解到,一旦创建子对话框,所有权就无法转移,因此需要销毁。

我不能继续破坏它(说来话长)。

还有其他方法可以实现吗?谢谢!

【问题讨论】:

    标签: c++ mfc dialog z-order


    【解决方案1】:

    这样,我设法做到这一点的唯一方法是每次都销毁 C,然后用新的父级(A 或 B,取决于谁是可见的)重新创建它。

    如果你有 A 或 B 中 C 窗口的句柄,那么当你想将 C 设置为 TopMost 时,如何向 C 发送用户定义的消息?

    【讨论】:

    • 我是 MFC 新手,能否请您详细说明“用户定义的消息”部分?我大致了解我可以在 ON_ 上发送我的?消息,但收到后,我能用它做什么?我在 MSDN 的某个地方读到过,育儿(或者是所有权)只能在 Create() 期间决定,就像我上面提到的那样——如果我可以通过接收消息来做一些事情,那么文档中的声明就不再是真的吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 2010-09-25
    相关资源
    最近更新 更多