高手求救.用户界面编程

来源:百度知道 编辑:UC知道 时间:2024/06/04 01:18:49
在我的程序中,当用户发出一些命令后,在一个CxxxView中会出现不同的视图.但这些视图中有相同的东西,比如都有3个button和一个listbox,3个button分别是增加,删除,修改listbox功能.所以我想为其写个基类,基类里实现3个button和listbox及其消息响应,然后在子类里写其他控件和消息响应.我自己写了但不成功,我该怎么实现呢?

方法1、

你可以这样实现:
反正3个页面看起来一样,你就不如真的让他们用一个视图类。当页面转换的时候,都转换到这个页面中来,但是设置一个标志,用来标志是在哪个具体的页面中。比如如果功能1要进入这个页面,就设置标志=1,功能2要进入这个页面,就设置标志=2.。。。。在需要区分处于哪个功能的地方,只要判断这个标志就可以了。事实上3个功能都在同一个页面。

方法2、
1、设置一个基类。这个基类由视图类或者对话框类派生,用于作为3个视图类的基类。
2、在基类中添加3个按钮的处理函数,加上virtual类型。但不进行消息映射。
virtual void OnButton1();
virtual void Onbutton2().....
3、添加listbos类型的控件变量。但不需要进行关联。
4、在基类的OnButton1...3中实现功能。
5、从这个基类派生3个子类,分别代表3个视图。
6、手动添加消息映射到基类的OnButton1...3。
7、手动添加控件关联到基类的listbox变量。
8、这样就OK了。
9、如果3个基类需要有自己的处理。则重载OnButton1..3。
10、在OnButton1...3中可以调用 C基类::OnButton1..3来调用默认的基类的处理方法,或者,调用自己的处理方法。