mfc 单文档分隔窗口重设分隔窗口的高度后,再最小化程序,程序会终止

时间:2021-09-25 23:46:14


单文档分隔成了三个窗口:共二行,第一行2列。
做了一个菜单,在这个菜单的命令里重设了第二行的高度,然后什么都没有做,就去最小化程序,程序就终止了


菜单命令中,只要加这行就会终止:_splitter.SetRowInfo(0,rect.bottom - m_spliHeight,0);

看程序是在程序界面缩到任务栏后,终止的

谢谢大侠们

3 个解决方案

#1


是因为在OnSize中我写了m_splitter.SetRowInfo(0,cy-m_spliHeight,0);
当最小化时,cy=0,m_spliHeight > 0;二者相减小于0,所以程序执行到这里会终止

我加了if(cy > m_spliHeight)程序可正确执行

if(cy > m_spliHeight)
m_splitter.SetRowInfo(0,cy-m_spliHeight,0);

#2


恭喜。
一般在使用变量前进行正确性检查是个好习惯。

#3


问题解决了?

#1


是因为在OnSize中我写了m_splitter.SetRowInfo(0,cy-m_spliHeight,0);
当最小化时,cy=0,m_spliHeight > 0;二者相减小于0,所以程序执行到这里会终止

我加了if(cy > m_spliHeight)程序可正确执行

if(cy > m_spliHeight)
m_splitter.SetRowInfo(0,cy-m_spliHeight,0);

#2


恭喜。
一般在使用变量前进行正确性检查是个好习惯。

#3


问题解决了?