【问题标题】:Moving layered windows concurrently in win32在win32中同时移动分层窗口
【发布时间】:2012-02-16 16:22:34
【问题描述】:

我正在尝试在我的 win32 窗口中实现自定义选项卡控件,因为我使用了一个分层窗口,它是主应用程序窗口(用于主选项卡控件)的子窗口,以及用于单个选项卡项的独立窗口。

我的问题:每当我移动主应用程序窗口时,控制窗口都会随之移动(因为它是子窗口),其中各个选项卡项窗口保持在其位置。谁能指导我如何让标签项窗口与主应用程序窗口同时移动?我无法将项目窗口设置为应用的子窗口,因此请基于此提出您的建议。

【问题讨论】:

    标签: c++ winapi


    【解决方案1】:

    您应该将标签重新设计为子窗口。否则,你试图让它发挥作用只不过是绝望地尝试修复最初被弄坏的东西。

    如果您仍然想坚持原来的计划,您需要挂钩/子类主应用程序窗口并处理其移动和调整消息(WM_MOVING 和朋友),以便您的处理程序可以分别更新您的弹出/选项卡窗口位置.

    【讨论】:

    • 实际上我正在为标签项使用分层窗口;根据 msdn,(msdn.microsoft.com/en-us/library/windows/desktop/…) 如果它是分层窗口,我不能将窗口指定为子窗口。这一层必须是独立的。不过谢谢!我会考虑你的第二个建议。我正在为我的主窗口使用 MFC 窗口,但我无法找到 WindPorc() 方法的位置。抱歉我的蹩脚问题,我是win32编程的新手,我不允许使用MFC的所有功能。
    • 恐怕您没有按照我想要的方式阅读我的答案。就像这样:您不应该使用分层窗口,而应该使用子窗口。至于WndProc,每个窗口都有它,并且拥有一个句柄就足以通过SetWindowLongGWL_WNDPROC 进行子类化。如果您愿意走错路,那仍然是您的选择。
    • 如果在不需要的地方单击了事件,我需要将事件转移到主控制窗口。实现这一目标的唯一方法是使用分层窗口。我已经找到了在哪里捕获大小调整事件,感谢您的帮助!
    猜你喜欢
    • 2012-11-08
    • 1970-01-01
    • 1970-01-01
    • 2018-04-28
    • 1970-01-01
    • 2011-01-14
    • 2018-09-25
    • 1970-01-01
    • 2018-07-05
    相关资源
    最近更新 更多