D dataking Unregistered / Unconfirmed GUEST, unregistred user! 2005-05-04 #1 我在写一个MDI程序,主窗体是一个EXE,几个子窗体是封装在各自的DLL中,我想在打开某一个DLL子窗体时,把另外的已经打开的DLL子窗体关闭,一直都没法实现,哪位大哥能帮忙指点一下小弟,谢了!
D dataking Unregistered / Unconfirmed GUEST, unregistred user! 2005-05-04 #2 我在写一个MDI程序,主窗体是一个EXE,几个子窗体是封装在各自的DLL中,我想在打开某一个DLL子窗体时,把另外的已经打开的DLL子窗体关闭,一直都没法实现,哪位大哥能帮忙指点一下小弟,谢了!
K kinneng Unregistered / Unconfirmed GUEST, unregistred user! 2005-05-04 #3 你想在一个dll去关掉另一个dll的窗口这个问题很多办法<br>findwindow找到那个dll窗的句柄关掉它,这是系统的<br>也可以在主程序中写一个管理函数,然后使用回调的方法,让exe帮你关掉它
你想在一个dll去关掉另一个dll的窗口这个问题很多办法<br>findwindow找到那个dll窗的句柄关掉它,这是系统的<br>也可以在主程序中写一个管理函数,然后使用回调的方法,让exe帮你关掉它
Y ydopqi Unregistered / Unconfirmed GUEST, unregistred user! 2005-05-04 #4 SendMessage(Handle, WM_CLOSE, 0, 0);<br>或<br>PostMessage(Handle, WM_CLOSE, 0, 0);<br>看看能关闭没?
K kinneng Unregistered / Unconfirmed GUEST, unregistred user! 2005-05-04 #5 我建议用主程序中写管理函数,通过exe联系关闭窗口,因为有时候findwindow找句柄不好使,比如,当dll窗体被重复打开,标题相同时,不知道要关哪一个。
D dataking Unregistered / Unconfirmed GUEST, unregistred user! 2005-05-04 #6 To kinneng:我也想这么做,可否举个好的例子呀?谢了!
C chengang_1981 Unregistered / Unconfirmed GUEST, unregistred user! 2005-05-06 #8 在dll的显示子窗体函数中返回指向窗体对象的指针,,并在主程序中保存,,在调用关闭函数时传入这个指针。<br><br> 大体就是如下这么写:<br>procedure showointer<br>begin<br>...<br>mdiform:=TMdiForm.create(application);<br>return:=pointer(mdiform);<br>end;<br><br>procedure close(mdiointer);<br>begin<br>...<br>TMdiForm(mdi).close;<br>TMdiForm(mdi).free;<br>end;
在dll的显示子窗体函数中返回指向窗体对象的指针,,并在主程序中保存,,在调用关闭函数时传入这个指针。<br><br> 大体就是如下这么写:<br>procedure showointer<br>begin<br>...<br>mdiform:=TMdiForm.create(application);<br>return:=pointer(mdiform);<br>end;<br><br>procedure close(mdiointer);<br>begin<br>...<br>TMdiForm(mdi).close;<br>TMdiForm(mdi).free;<br>end;