关于dialog有多个属性页的一点想法

本文探讨了在对话框中管理多个属性页时,如何确保它们与内存数据正确交互,强调了使用SetActivePage函数的重要性,特别是在需要频繁与内存数据进行交互的场景下。

近日,做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哟!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值