请高手或大侠帮忙解决一下问题????
我写了一个DLL窗体(名叫:MyDllForm),想在MyDllForm窗体内用一个按钮(Btn_Exit)退出MyDllForm窗体,回到主窗体中.但是总是出错,代码如下:请高手帮忙?
function show_MyDllForm(hand:thandle;cap:string):boolean;stdcall;
var
MyDllForm:TMyDllForm;
begin
result:=false;
application:=hand;
MyDllForm:=TMyDllForm.Create(hand);
try
MyDllForm.Caption:=cap;
MyDllForm.ShowModal;
result:=true;
finally
MyDllForm.Free;
end;
procedure TMyDllForm.btn_ExitClick(Sender: TObject);
var
h:thandle;
begin
h:=findwindow( 'tMyDllForm ', '我的DLL窗体 ');
if hand> 0 then
tMyDllForm(h).Free;
end;
点击btn_exit时总是出错,请各位高手帮忙??请说详细些!
[解决办法]
楼主注意一下你的代码:
procedure TMyDllForm.btn_ExitClick(Sender: TObject);
var
h:thandle;
begin
h:=findwindow( 'tMyDllForm ', '我的DLL窗体 ');
if hand> 0 then
tMyDllForm(h).Free; // xiammy: h是THandle,是一个Windows的窗体资源ID,并不是次窗体的对象事例指针。所以不能强制转换,并调用Free方法。
end;
[解决办法]
试试。
var
h:thandle;
begin
h:=findwindow( 'tMyDllForm ', '我的DLL窗体 ');
if h> 0 then
SendMessage(h,WM_CLOSE,0,0);
end;