关于dialog有多个属性页的一点想法
近日,做MFC的一些东西,很简单是一个dialog有多个属性页的问题。
一般情况下,一个dialog如果有多个属性页,只需要将其中的一个设置为Active,其余的待点击这个属性页时会自动激活为Active。
但是如果此dialog里有多个属性页需要与内存数据做交互,这时就需要将这些属性页设置为活动的。
不然当与内存的数据做交互时,就会找不到这个属性页,程序就会崩溃。
所以SetActivePage函数的功能,不止是将此属性页显示出来,更重要的是激活此属性页。
如下例:
m_PropertySheet.AddPage(&page1);
m_PropertySheet.AddPage(&page2);
m_PropertySheet.SetActivePage( &page1 );
m_PropertySheet.SetActivePage( &page2 );
如果page1与page2都同时需要自动地与内存有数据交互(不是你点开才进行数据交互的),那么就需要像上面那么做,将page1与page2都SetActivePage。
综上,将属性页设置为active总是对的,如果你不确实这个属性页会不会自动地与内存作数据交换,那么请你在OnInitDialog时,老实地调用SetActivePage。
注意:把想要默认显示的属性页放在最后面调用SetActivePage哟!