我有一个使用DLL的表单。 有办法通过DLL获取表单的句柄吗?
这样的事情:
SetWindowText(HandleOfTheForm, 'This Program is using my DLL');
对语法错误感到抱歉。
答案 0 :(得分:4)
如果没有关于它的一些先验知识,DLL无法自动发现窗体窗口。 Form本身需要告诉DLL使用哪个HWND,例如通过DLL导出的函数,或者通过给Form提供DLL可以查找的已知/可预测的类名和/或窗口标题,例如使用FindWindow()
或EnumWindows()
。
更好的选择是编写DLL以公开Form可以为其分配处理程序的回调,然后让DLL在需要时调用它,让表单决定在调用时做什么。这样,DLL根本不需要了解有关Form的任何信息。