首页 新闻 会员 周边

CMdiChildWndEx类的窗口能否停靠在其他物体上?

0
悬赏园豆:50 [待解决问题]

我想让这样的mdi子窗口拼在一起,

不想使用CDockablePane类

迷茫三十年的主页 迷茫三十年 | 菜鸟二级 | 园豆:354
提问于:2023-09-18 22:02
< >
分享
所有回答(1)
0

CMdiChildWndEx 是 MFC(Microsoft Foundation Classes)中的一个类,通常用于创建 MDI(多文档界面)应用程序中的子窗口。这个类不直接支持窗口停靠或拼接到其他窗口上。

如果你想让这些 MDI 子窗口能够停靠在一起,而不使用 CDockablePane,你需要编写自定义的窗口管理和停靠逻辑。这可能需要一些复杂的代码来实现。以下是一般的步骤:

创建一个自定义的 MDI 子窗口类,该类扩展 CMdiChildWndEx 并添加停靠支持的功能。

实现窗口拖动和停靠的逻辑。这涉及到拖动窗口时捕获鼠标事件、确定停靠位置、调整窗口大小等。

确定何时触发窗口停靠的逻辑。这通常涉及到鼠标的释放事件或其他用户交互事件。

当需要停靠时,将窗口的位置和大小进行调整,使其与目标窗口对齐。

管理停靠的窗口,以确保它们不会互相重叠或阻挡彼此。

这些步骤需要相当多的自定义代码,因为 MFC 不提供直接的窗口停靠支持。你可以参考一些第三方库或开源项目,如 MFC Docking Framework(MFCDF)或自定义窗口框架,它们提供了更容易实现窗口停靠的功能。

总的来说,要使 MDI 子窗口能够停靠在一起,你需要编写复杂的自定义代码,或者考虑使用第三方库来简化这个过程。如果你想避免使用 CDockablePane,那么自定义实现将是必要的。

Technologyforgood | 园豆:7199 (大侠五级) | 2023-09-18 23:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册