首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从级联中排除某些MDI子窗口

从级联中排除某些MDI子窗口
EN

Stack Overflow用户
提问于 2011-12-09 20:22:45
回答 1查看 912关注 0票数 2

我已经写了一个MDI应用程序与许多子窗体,每个不同。假设用户创建了三个子窗体:第一个窗体的左上角位于屏幕坐标0,0;第二个窗体被拖动到屏幕的右侧(坐标100,300),第三个窗体出现在坐标20,20处。如果我使用主窗体的层叠命令,则第二个窗体将移动到10,10。

我希望第二个表单留在那里,并让第三个表单移动到10,10 (即级联顺序的第二位)。有没有办法从主窗体的“级联”命令中排除特定的MDI子窗体?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-09 20:36:56

无法影响Cascade方法的行为,该方法是通过向MDI容器窗口ClientHandle发送WM_MDICASCADE消息来实现的。

现在,看看WM_MDICASCADE,它有一个从级联中跳过禁用的MDI子进程的选项。因此,您可以禁用某些子窗口,自己发送WM_MDICASCADE消息,然后重新启用子窗口。我没有尝试过这样做,但在我看来,它很可能会起作用。

您的另一个选择是实现自己的MDI子定位方法。这实际上是相对容易做到的。我建议您参考Wine项目的源代码,以了解如何做到这一点。密钥文件是user32 DLL中的mdi.c

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8445420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档