请各位大虾告诉我!!!急急急~~~~~

coder_nullptr 2007-04-11 05:20:45
请问 Delphi 中怎么把 HWND 类型 和 TForm 对象关联



function HandleToForm(hWnd: HWND): TForm;
var
form : TForm;
begin

// 就是这里转换怎么写?谢谢!!

Result := form;
end;
...全文
144 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
coder_nullptr 2007-04-12
  • 打赏
  • 举报
回复
好奇怪,如果将DLL里面的代码改成

function GetModulePage(): TForm; stdcall;
begin
Application.CreateForm(TForm1, Form1);
Result := Form1;
end;

在 EXE 中调用所返回的 TForm 能够使用,如果改成

function GetModulePage(): HWND; stdcall;
begin
Application.CreateForm(TForm1, Form1);
Result := Form1.Handle;
end;

然后在 EXE 里用 frmTest := (FindControl(handle) as TForm); 所转回来的会出错,请各位大虾帮帮我!
coder_nullptr 2007-04-12
  • 打赏
  • 举报
回复
没有人回,自己顶!
coder_nullptr 2007-04-11
  • 打赏
  • 举报
回复
不行,问题还没有解决,如果我的 TForm 放在 DLL 中, 具体函数如下:

function GetModulePage(): HWND; stdcall;
begin
Form1 := TForm1.Create(nil);
Result := Form1.Handle;
end;

exports
GetModulePage;

然后在 EXE 中,调用 GetModulePage 函数所返回的 HWND, 怎么不行呢?
scroing 2007-04-11
  • 打赏
  • 举报
回复
顶~~~
wintergoes 2007-04-11
  • 打赏
  • 举报
回复
(FindControl(handle) as TForm).Caption :='Find By Handle';

830

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧