每打开一个DLL中的窗体,就会在任务栏产生一个图标,而且图标和主窗体的不一样,怎么隐藏,或者是改变图标?  

解决方案 »

  1.   

    DLL中的窗体的父窗体的句柄设定为Application.Handle,这需要作为参数传递。如果那个DLL是delphi写的就比较容易做到,CreateForm的时候,用Applicaton创建窗体的方式,参考他的源代码,就写得出来了。
      

  2.   

    来晚了,楼上的正确,不过如过是动态调用DLL中的窗体,那么应该在DLL里面的窗体SHOWMODAL之后,将dll的Application.handle := 0 ,这样使用完之后才不会出错
      

  3.   

    确实来晚了,创建DLL的窗体的时候用Application作为参数
      

  4.   

    每打开一个DLL中的窗体,就会在任务栏产生一个图标,而且图标和主窗体的不一样,怎么隐藏,或者是改变图标? 以下是代码,麻烦老兄帮忙看看,该在哪里改写,万分感谢
    DLL
    =============
    library IEBrowserHelper;
    uses
      ComServ,
      _IEBrowserHelper in '_IEBrowserHelper.pas';
      exports
      DllGetClassObject,
      DllCanUnloadNow,
      DllRegisterServer,
      DllUnregisterServer;
    begin
    end.
    =======================
    以下就是那个被显示出来的form
    =====================
    unit IehelperForm;
    interface
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
    type
      THelperForm = class(TForm)
        Memo1: TMemo;
        Edit1: TEdit;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    implementation
    {$R *.DFM}
    uses _IEBrowserHelper;
    procedure THelperForm.Button1Click(Sender: TObject);
    var
      X: OleVariant;
    begin
      IE.Navigate(Edit1.Text, X, X, X, X);
    end;
    end.
      

  5.   

    library IEBrowserHelper;
    uses
      ComServ,
      _IEBrowserHelper in '_IEBrowserHelper.pas';procedure ShowForm(AHandle:THandle);StdCall;  //在DLL单元声明显示窗体的函数
    begin
      HelperForm := THelperForm.Create(Application);
      HelperForm.ShowModal;
      HelperForm.Free;
    end;
      exports
      DllGetClassObject,
      DllCanUnloadNow,
      DllRegisterServer,
      DllUnregisterServer,
      ShowForm name 'ShowForm';//加上这句
    begin
    end.
      

  6.   

    看看这里:
    http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=1022
      

  7.   

    你在创建窗体时,传进一个参数为TApplication类型(ParentApplication),然后再窗体的创建中把这个参数赋给Application,如:
    function createform (ParentAPplication : Tapplication) : LongINt;
    begin
      Application := parentApplication;
      with Tfrom.create(Application) do
      ShowModal;
    end;
      

  8.   

    SetWindowLong(Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
      

  9.   

    jxc163(一水寒)  的答案就能解决你的问题,就不在帖代码了