| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1661 人关注过本帖
标题:如何关闭已经打开的DLL窗体
只看楼主 加入收藏
yefalai
Rank: 2
等 级:论坛游民
帖 子:20
专家分:10
注 册:2010-8-12
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
如何关闭已经打开的DLL窗体
如标题,  从一个窗体打开了N个DLL窗体,希望关闭该窗体的时候,同时关闭这些打开的DLL窗体.

请高手们帮忙, 先谢谢了!
搜索更多相关主题的帖子: DLL 窗体 
2010-08-12 10:26
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
收藏
得分:20 
直接给这些窗体发送WM_CLOSE消息不好吗?

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2010-08-12 11:57
yefalai
Rank: 2
等 级:论坛游民
帖 子:20
专家分:10
注 册:2010-8-12
收藏
得分:0 
这样当然也可以,但程序如何给具体哪写窗体发送WM_CLOSE消息呢, 还有我希望关闭窗体时有返回值. 比如说我要关的窗体还在编辑数据状态,提示不允许关闭等等
2010-08-12 13:12
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
收藏
得分:0 
以下是引用yefalai在2010-8-12 13:12:36的发言:

这样当然也可以,但程序如何给具体哪写窗体发送WM_CLOSE消息呢, 还有我希望关闭窗体时有返回值. 比如说我要关的窗体还在编辑数据状态,提示不允许关闭等等
   这取决于你的设计,我会定义一个私有消息,每个DLL创建窗口后把它的窗口句柄通过这个消息传递给我,我保存在一个句柄数组中。关闭程序时就可以‘按图  索骥’了。
   希望关闭窗体时有返回值,可以用SendMessage发送消息,不同于PostMessage的是这个函数是同步的,也就是说它会等待你得DLL窗体作出回响,你可以返回你自己定义的消息值,来指出你得Dll窗口当前状态,你的主程序可以据此作出不同的回应。

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2010-08-12 13:50
yefalai
Rank: 2
等 级:论坛游民
帖 子:20
专家分:10
注 册:2010-8-12
收藏
得分:0 
呵呵,我现在处理是: 在每个DLL的主类中定义两个属性, 将它打开的窗体的类名和标题 返回给主窗体,用列表保存起来. 当关闭主窗体的时候,便一个一个的判断窗体是否是打开状态,如果是打开状态,则直接给这些窗体发送WM_CLOSE消息.

至于之前说的"比如说我要关的窗体还在编辑数据状态,提示不允许关闭等",我没再进行这样的判断.而是直接判断是否有子窗体处于打开状态,有则不允许关闭主窗体.这样的处理方法就是 需要在主窗体定义个无限制的二维数组,将开过的窗体"类名和标题"都保存起来,随着打开关闭的次数真多,判断子窗体的状态就相应增多,这样就似乎会影响点速度. 但没办法了,目前也只想到这样的处理方法.
2010-08-12 15:44
快速回复:如何关闭已经打开的DLL窗体
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021987 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved