为什么我FindControl函数找不到dll窗体 ( 积分: 20 )

  • 主题发起人 主题发起人 loskiller
  • 开始时间 开始时间
L

loskiller

Unregistered / Unconfirmed
GUEST, unregistred user!
我做了个MDI程序,子窗体是做在dll里的。
我通过主程序创建了dll窗体,然后在主程序里
用FindControl(dll窗体的句柄)却找不到该窗体,
但在dll窗体里用FindControl(dll窗体的句柄)能找到。
这样出现的问题是主窗体的ActiveMDIChild始终为空。
 
我做了个MDI程序,子窗体是做在dll里的。
我通过主程序创建了dll窗体,然后在主程序里
用FindControl(dll窗体的句柄)却找不到该窗体,
但在dll窗体里用FindControl(dll窗体的句柄)能找到。
这样出现的问题是主窗体的ActiveMDIChild始终为空。
 
看看 http://www.delphibbs.com/keylife/iblog_show.asp?xid=12219 中对FindControl函数的分析
 
lichengbin
请问HInstance和GetModuleHandle(nil)有什么区别
 
HInstance是当前模块基地址,是运行时模块被加载的基地址,对于EXE而言是0x00400000,对于DLL而言,默认是0x10000000,如果这个地址已经被占用(已经有其他DLL先于当前模块加载到了这个地址),那么系统会进行重定位。GetModuleHandle(nil),不管是在DLL中还是EXE中都是获取模块所属进程的EXE模块的基地址,不明白的话,去看看SDK或MSDN。
 
多人接受答案了。
 
后退
顶部