【经验:设置连续两次弹出对话框,发现数组中的值会被又改回去】
1、接着上次的来。
首先8楼提出的设想已经完全实现了,一个更加直白地看到全局变量数组中内容究竟为何的方法是创建一个对话框,令显示数组中的内容:
MessageBox(CPublic::a);
我们就能清楚地看到此时数组中的内容是不是被改过了、被改成什么了,而没必要每次都把音乐听一遍才能发现到底有没有对数组修改成功。
(说到这里其实还可以设置断点然后debug看看数组之中的内容诶,不过暂时不会用这个方法,等这个程序写完了再看看孙鑫是怎么设置断点的)
2、接下来在弹出对话框之后播放音乐,第一次单纯设置挑音乐是成功的没问题。
接下来把这个程序嫁接到Clock这个项目中去,发现如果不开启时钟是没问题的,也能实现挑选音乐的功能,但是一旦开启时钟,那么选了音乐后会出现这种情况:有一瞬间音乐被按照用户的意思改了,但是下一秒又被改成默认音乐了。
这一点我们如何证明呢?可以设定让程序连续弹出两个对话框提示:
打开时钟后进行更改音乐:其中弹出的第一个对话框显示数组已经按照预期被改变,而第二个对话框则显示又被改成原来的了。
不打开时钟直接更改音乐:两个对话框显示的内容一致。
很显然问题出现在“打开时钟”这个动作,因为打开时钟后也有个修改数组内容的指令,只是不明白为何明明修改完了但是却不允许让别人改(或者说它发现数组内容被更改后又跳出来把数组改回去)这里让我再研究一下。