如何在主窗体中判断已调用的DLL窗体状况(100分)

  • 主题发起人 主题发起人 jettop
  • 开始时间 开始时间
J

jettop

Unregistered / Unconfirmed
GUEST, unregistred user!
在一主窗体中动态调用了一非模态的DLL窗体,
当我要关闭主窗体时,必先判断DLL窗体所处状态,如果DLL窗体已打开则不能关闭主调用窗体,
这是一般应用的常识。
可是我应如何在主窗体中得到DLL窗体是否打开的状态呢?[?]
在主窗体中又如何防止同一DLL窗体被打开两次呢?[?](我只希望同一个DLL窗体只被打开一次)
谢谢!!!



 
在主窗体中定义一个Tstringlist当dll中窗体创建后把窗体的IntTostr(handle)写入
stirnglist中,当窗体关闭是自定义一个消息想Application发送这个消息
在主窗体中截获这个消息,然后把发送消息的窗体的handle从stringlist中删掉。
下来你的通过stringlist判断窗体是否被create;
 
DLL输出函数要能返回窗口句柄,类似:
function ShowDLLForm(......): HWND
stdcall;
这个函数本身要判断FORM是否已建,是否已隐藏,是否最小化等等,再决定如何显示它.
主程序得到返回值要保存,在退出之前可以用IsWindow判断它是否还存在,
如何存在则向它发送WM_CLOSE消息.
 
后退
顶部