因为今天在基于对话框的程序中,测试了CStatusBarCtrl和CStatusBar两种“状态栏”,发现默认的情况下,调用Create构造出来的状态栏的行为还是有不小的差异,所以在此总结出来。
首先强调,下文中,CStatusBar和CStatusBarCtrl会多次出现,请一定不要搞混淆了!!!
首先说明这个现象,然后我再来解释原因。
现象:
当运行程序,对话框显示出来,你先将对话框的大小随意改变(最好是变大,才好看效果),然后再尝试通过size-grip改变CStatusBarCtrl对象的大小。此时你会发现,神奇的事情发生了!!!!
和你想象的不一样,它竟然会自动移动到对话框的底部(因为你此处指定的是CCS_BOTTOM,如果指定的是CCS_TOP,那么它会自动跳到对话框顶部),而且,大小也还原为开始的值(后面你会知道, 这是系统预定义的默认值)。
而对于你构造的CStatusBar对象,你改变它的大小的时候,它确实按照你所想象的那样,仅仅改变了大小而已。
我百思不得其解,到底发生了什么事?为什么会这样呢?
我的源代码是这样的:
1、 首先在Dialog类里面添加两个成员变量
CStatusBar m_wndStatusBar;