D
dwxm
Unregistered / Unconfirmed
GUEST, unregistred user!
我用DLL创建了一个窗体,当窗体隐藏在显示后,却无法关闭。<br><br>主程序:<br>procedure TForm1.Button1Click(Sender: TObject);<br>begin<br> CreateForm;<br>end;<br><br>procedure TForm1.Button2Click(Sender: TObject);<br>var<br> hWND: Cardinal;<br>begin<br> hWND:= FindWindow(nil, 'aaa');<br> if hWND = 0 then exit;<br> SendMessage(hWND, WM_Close, 0, 0);<br>end;<br><br>procedure TForm1.Button3Click(Sender: TObject);<br>var<br> hWND: Cardinal;<br>begin<br> //ShowForm; //如果用这种方式,则可以正常显示<br> //exit;<br> hWND:= FindWindow(nil, 'aaa');<br> if hWND = 0 then exit;<br> Memo1.Clear;<br> ShowWindow(hWND, SW_SHOWNORMAL);<br>end;<br><br>DLL部分<br>procedure CreateForm(AppHandle: Cardinal); stdcall;<br>begin<br> Form2:= TForm2.Create(nil);<br> try<br> Form2.Show;<br> finally<br> end;<br>end;<br><br>procedure ShowForm; stdcall;<br>begin<br> Form2.Show;<br>end;<br><br>窗口建立后,第一次我可以关闭窗体。我并不想释放这个窗体,但再次显示出来后,就无法关闭。是什么原因?<br>虽然可以直接用注释部分显示,并且可以顺利关闭。但为什么不能用 ShowWindow方式。我看别人创建的DLL窗体,都可以使用外部程序进行显示和关闭。<br><br>分不多,请大家释疑!感谢