是这样的,子窗体是无标题栏的窗体经DLL封装后嵌入到主窗体中,
现在是要找到这个融入到主窗体中的DLL子窗体的窗体句柄,大家有办法吗?
我用下面的方式都找不到,whd:=FindWindow(pchar(strM),nil);//strM为主窗体的类
  whd:=FindWindowEx(whd,0,pchar(str),nil);//str为DLL窗体的类

post(whd,wm_comm,0,0)时发送没反应
可是跟踪发现第二个whd不为NULl,不知道到底是找到了还是没找到,那为什么发送消息进去没反应呢?
如果没找到要怎么找?

解决方案 »

  1.   

    子窗DLL是你写的吗? 如果是,那还不如调用时返回一个句柄比较好.
      

  2.   

    是我写的啊,我是在子窗体A中再调用另外一个子窗体B,在弹出的子窗体B中向A发送消息,也就是要找A子窗体了,不是在主程序窗体中找
      

  3.   

    用getmodelhandle获得模块句柄了然后通过句柄就能得到了
      

  4.   

    用getmodelhandle获得模块句柄了然后通过句柄就能得到
      

  5.   


    var
      i: integer;
    begin
      for i:= 0 to Screen.FormCount -1 do
      begin
        if (Screen.Forms[i].ClassType = TYourFormType) then
        begin
          //....
          exit;
        end;
      end;
    end;