MFC Dialog窗口折叠

将一个Dialog窗口进行折叠

首先我们建立一个窗口,添加一个按钮,使用这个按钮来展示折叠效果

然后我们在中间画一个线,Picture Control控件

 

这个收缩按钮就是用来发送信号的,这个 Picture Control控件呢就是我们要折叠的位置

为收缩按钮添加事件响应处理函数

 

说一下上面的步骤吧,

首先我们需要对按钮做一个状态切换,当我们点击收缩按钮之后,切换到扩展按钮,然后我们需要两个尺寸,一个是窗口原本的大小,一个是窗口折叠后的大小。

原本的大小我们直接GetWindowRect()便可以获取了,那么截切的大小该怎么计算呢?这就需要用到 Picture Control控件的位置了,因为窗口的原始大小与截切后的大小只是纵坐标不同,我们这里直接获取Picture Control控件的纵坐标点作为窗口的纵坐标点,那么就实现了窗口从Picture Control控件处折叠了。

在最后我们做了判断,如果用户点击了收缩,我们就用rectsmall数据来展示窗口,否则就用原始大小展示窗口。

 

这就是折叠后的效果,当然,Picture Control控件也可以美化,本文主要还是讲窗口折叠的实现,这个窗口是在单文档界面创建的。

 

posted @ 2020-11-13 16:17  大笨瓜  阅读(790)  评论(0)    收藏  举报