当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 通常而言,一个类是对应一个窗口模板的,可是很多情况下,我们所需要的窗口都基本类似,可是又不完全相同,用同一个类吧,可是某些标志,比如窗口名,菜单、控件个数有不相同,定义多个类,又显得重复累赘,效率低下。
 

 

 ·使程序运行一个实例    »显示摘要«
    摘要: 代码源自jeffry richter的著作《windows核心编程》 在initinstance()函数中写入以下代码: //只运行一个实例 handle happ = createmutex(null,false,"onlyoneinstanceexample"); if(getlasterror() == error_already_exists) { afxmessagebox("alre......
 ·使用自定义的类csetodbc(二)    »显示摘要«
    摘要: 1,利用sql词句理论上可以使用任何数据库,以sql为例.body.clientheight)this.width=body.clientheight" src="http://www.338888.com/vcshare/images/upfile/200461521239.jpg" onmousewheel="return yuzi_img(event,this)"> 2,使用方法void ......


同一个类,映射多个窗口

 通常而言,一个类是对应一个窗口模板的,可是很多情况下,我们所需要的窗口都基本类似,可是又不完全相同,用同一个类吧,可是某些标志,比如窗口名,菜单.控件个数有不相同,定义多个类,又显得重复累赘,效率低下.

 后来,我就在实验,同一个类,分别映射多个窗口. 【程序编程相关:新手必学:windows网络编程经典入门

    如何才能使得同一个类,满足多个不同窗口的需求呢! 刚开始我考虑使用一个共同的基类,包含各窗口都需要的功能函数,然后每个窗口都继承它,在自身类里面做一些必要的修改.可是实践过程中,我发现这个主意并不妙,如果做一个虚基类,各自继承,对于这种大部分操作都靠按钮.鼠标.键盘.菜单的窗口来说,意义并不大.然后我直接做了一个从cdialog继承下来的窗口,再让各个所需窗口继承它.然后在程序运行后,动态更改窗口标题,动态加载菜单项,隐藏与增加某些控件,可是那些消息映射并不能继承(因为它们是一系列宏,不属于程序的范畴,自然无法继承),而且动态隐藏控件还好些,可是动态增加控件就不太容易了,第一个是各个窗口大小可能不一样,排版布局上,就要累坏人!第二是,很多控件使用程序create,烦杂的参数,也要让熟悉了可视化编程的我们头痛! 【推荐阅读:连接浏览器SHELL窗口的代码

      对于非模式对话框,同一个类,映射多个窗口相对来说,要容易些,只要在它的构造函数定义如下: 【扩展信息:获取Divx的版本号(测试中)

 这种方法,我以前并没有看到别人使用过,到最后,我才意识到,这种技巧,虽然可以节省代码,但维护效率太高,而且不易移植,并没有我刚设想的时候,那么完美,除了c++,vb.c#可不支持这种技巧.

test::test(cruanjian2dlg* parent,int i){  m_hicon = afxgetapp()->loadicon(idi_icon1+i);dlgid=i;

m_parent=parent;

 

 

 


...   下一页
 ·taking a bite out of asp.net viewstate    »显示摘要«
    摘要: taking a bite out of asp.net viewstate susan warrenmicrosoft corporation november 27, 2001 when i meet and talk to new asp.net page developers, one of the first things they usually ask me is, ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE