如何创建一个自动调整其父级大小的窗口

时间:2014-05-23 00:34:32

标签: c++ winapi wtl

我正在尝试创建一个始终填充其父客户区的子窗口,并且始终具有相同的大小和位置。我的诱惑是在父节点上调用GetWindowLongPtr,挂钩它的窗口过程并拦截WM_SIZEWM_MOVE消息并调整/移动我的孩子以响应这些消息。

然而,我正在研究的项目是用WTL编写的,我很想相信有一个WTL解决方案比这个暴力拦截消息更优雅/更精明。我对WTL不是很熟悉,文档最多也很稀疏。我正在考虑使用CHAIN_MSG_MAP_MEMBER,但我不确定如何确定WM_SIZE的处理程序何时处理父级的消息或子级自己的WM_SIZE消息

我希望对父类的更改尽可能不引人注意......也许父母的消息映射中有一行。父母也可以是任何窗口,而不仅仅是顶级窗口。

1 个答案:

答案 0 :(得分:2)

使用CDialogResize课程。它在atlframe.h中声明。你可以在互联网上找到一些例子。例如This