exe主程序中有一个主窗体,dll中有子窗体。
当子窗体为当前窗口时,按Tab、Enter、光标键等键时,子窗体上的控件不响应,
如编辑框或按钮之间不会切换。
如果在主窗体上放置几个控件(比如Edit),就会发现按这些键时,焦点跑到主窗
口上的控件上去了。
苦思数日不得解

解决方案 »

  1.   

    有啊,我传进去了!可是并没起到作用!代码如下:
    procedure OpenForm(ParentHandle,AppHandle: Longword) ;stdcall;
    begin
      Application.Handle := AppHandle;
      Form1 := TfmMain.CreateParented(ParentHandle);
      Form1.Show;
    end;form1就是dll中的窗体了,我让她显示在主窗体的panel上,传入的另外一个参数就是panel的句柄了!form1中还是未响应tab和enter键!!!谢谢
      

  2.   

    调一调这两个API函数试试,
    windows.SetActiveWindow();
    windows.SetParent();
    我以前也有这问题,后来好了,似乎这样就可以了
      

  3.   

    如果你DLL中的子窗体的parent设置成了主窗体的panel或其他一些容器,那么你的DLL中子窗体是得不到焦点的,这应该是DELPHI的BUG,你只有不设子窗体的PARENT,那么显示出来才会获得焦点,这个问题我做过很多次了
      

  4.   

    可以把你的Dll中的窗体的Parent设置为调用Dll程序主窗口的句柄。
      

  5.   

    soundbug(兼职乞丐)  :真是如此吗?唉,难怪了,不论我如何搞都美办法!如果有人能搞定,我愿意出300分!如果愿意,请加qq:55268867