有心人 发表于 2009-5-18 09:09:05

【求助】 一个窗口显示问题

<p><font face="Verdana">请教一个问题<br/>这是我在我一个DLL里面的一个过程。<br/>主要用它调用BTL窗口。<br/>Public Sub Showbtl()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set BTL.Application = M_OApp<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BTL.Show vbModal&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>End Sub</font></p>
<p><font face="Verdana">BTL 中有一个按钮,功能是在另一个程序上面选择一个数据后,再显示BTL窗口。<br/>&nbsp;&nbsp;&nbsp; 但是不知为什么, BTL.Show这一步不能很好的运行。也就是这个窗口显示了一下,<br/>马上就关闭了。如下代码:<br/>&nbsp;&nbsp;&nbsp; Me.Hide<br/>&nbsp;&nbsp;&nbsp; TM.Text = GetText(AcadDoc)<br/>&nbsp;&nbsp;&nbsp; BTL.Show</font></p>
<p>&nbsp;</p>
<p>如果把代码&nbsp; 改成BTL.Show 1可以显示,但是就定住了。什么都不能动了.</p>

马大哈 发表于 2009-5-18 21:11:24

<p>不使用vbModal参数时,为无模式窗体;如果在执行了SHOW后,又在哪个地方将窗体卸载或隐藏了,当然就是"闪一下就没了".</p>
<p>&nbsp;</p>
<p>使用vbModal参数时,为模式窗体,会在SHOW方法处暂停向下执行,直到当前窗体隐藏或卸载为止.</p>
<p>&nbsp;</p>
<p>这是你代码的逻辑问题,需要你自己调试与跟踪.</p>
<p>&nbsp;</p>
<p>注意一下其它地方卸载或隐藏窗体的语句,下断点来跟踪.</p>

马大哈 发表于 2009-5-21 02:24:40

<p>这个就是你的代码逻辑问题</p>
<p>&nbsp;</p>
<p>调试是很重要的一环</p>

有心人 发表于 2009-5-19 08:04:41

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 但是我不知为什么它会定住,什么按钮都不能动。就是这一步</p>
<p>&nbsp;&nbsp;&nbsp; Me.Hide<br/>&nbsp;&nbsp;&nbsp; TM.Text = GetText(AcadDoc)<br/>&nbsp;&nbsp;&nbsp; BTL.Show vbModal&nbsp;&nbsp;</p>
<p>如果不要vbModal&nbsp;&nbsp;就一闪就没有了。请指点!!</p>

有心人 发表于 2009-5-20 14:50:34

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;哈哈!!可以了,原来是我代码中有一个设置自己父窗口的功能,操作后没有释放的原因。</p>
<p><font face="Verdana">SetParent</font>&nbsp; 窗体自身句柄, 新父窗体句柄</p>
<p>然后要用&nbsp;&nbsp;&nbsp; <font face="Verdana">SetParent</font>&nbsp; 窗体自身句柄, 0&nbsp;&nbsp; 的方式释放窗体自身。</p>
页: [1]
查看完整版本: 【求助】 一个窗口显示问题