我把快闪窗体放在一个dll中,可是调用后,在任务栏上会出现东西,这样感觉像是两个软件一样,很不好?谁知道去掉任务栏上东西的方法,要dll中的哟!

解决方案 »

  1.   

    将主窗口传到DLL中去,设置快闪窗口的主窗口为传过去的主窗口就行了
      

  2.   

    我试过的,不行,我在主窗口和dll中都设置了一个
    type
    p=^TComponent
    在dll中
    var pDLL:p;
    在主程序中把@Application给了dll中的pDLL参数。可是地址不错啊。
      

  3.   

    主窗体和DLL窗体的工程选项都要编译成运行期包。在Project\Option\Package
    "Build runtime Library"之类的复选框。
      

  4.   

    问题出在你编译dll的时候:
    解决方法:
    编译dll的时候,在Project Option页里面选择Pacages页
    将Build With Runtime Packages前面打勾然后调用编译生成的dll看看!!
      

  5.   

    有2种方法
     1 把Application.Handle作为参数传递得Dll
      然后把在函数中加入 Application.Handle := H;// H为函数的参数2 使用SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);建议使用1
      

  6.   

    procedure hidetaskbar;  //在任务栏隐藏的函数
    var
      wndHandle:THandle;
      wndClass: array[0..50] of char;
    begin
       strpcopy(@wndclass[0],'shell_traywnd');
       wndhandle:=findwindow(@wndclass[0],nil);
       showwindow(wndhandle,SW_HIDE);
    end;procedure hidetaskbar;  //在任务栏显示的函数
    var
      wndHandle:THandle;
      wndClass: array[0..50] of char;
    begin
       strpcopy(@wndclass[0],'shell_traywnd');
       wndhandle:=findwindow(@wndclass[0],nil);
       showwindow(wndhandle,SW_RESTORE);
    end;
      

  7.   

    麻烦,
    Child=Findwindow(...);
    SetParent(....,MainForm.Handle);