请教,关于主程序界面和各模块之间的数据交换
严黎斌 2004-09-28 09:29:13 我要编个软件,总的说比较简单,主界面接受一些参数,然后调用一个模块,进行繁复的运算,最后算出结果,显示回主界面。这个计算模块运算量很大,但逻辑上与界面联系不大,所以我将其独立成一个cpp文件。但模块在运算中,需要将一些进度信息、中间结果显示到界面,最后是计算结果显示到界面。这些信息就是些文本,比如CString就可以,然后在一个文本框中显示出来。
现在的问题是,我如何让模块的这些信息及时反应到界面中?我现在仅能做到全部结果完成后,才将所有结果返回界面并显示。而在比较长的运算中,界面就象失去反应一样。我现在需要计算模块实时地将中间状态显示到界面上,但不知道有什么好的方法来实现?
我遇到的主要困难是,如何让模块返回信息到主界面?模块中无法访问界面的窗口类的成员变量或函数呀。想做成类似回调函数的,但类中的成员函数我不知如何转换成普通的静态函数。
还有,如何能让界面信息刷新和模块的运算两不误?是不是要用线程?
罗哩罗嗦一大堆,希望大家能看明白。当然,这些问题对vc老手来说可能就很简单啦。