help me!DLL实现窗体重用的问题???(50分)

  • 主题发起人 主题发起人 Iamgyj
  • 开始时间 开始时间
I

Iamgyj

Unregistered / Unconfirmed
GUEST, unregistred user!
利用DLL实现窗体重用,运行时任务栏总是出现新建的窗体,比如一个应用程序需要调用
若干个DLL程序,出现若干窗口,但任务栏上总是出现若干窗体,在一个程序中可以用子
窗体来解决,调用DLL是否也可以,如何解决?我是新手,希望能回答的详细一些,不胜
感激!!!!!![:)]
 
在一个程序中用子窗体好象也是不行,望各位大虾赐教!!!
 
好像可以改变窗口的参数,让它不显示在任何栏上,或用消息,查查以前的问题吧
 
我也遇到这个问题,在dfw也查致相关贴子,用API函数(具体哪个忘了),
我试了一下还是不成功。解决了此问题不要忘了告诉我一声。
lizongliang@china.com.cn
 
没有人关注吗?不是这样也要给分吧!
 
我不太明白你的问题哦~

不过,我到可以告诉你,如何在DLL中使用窗体,但你的重用,我不知道是否和我理解的一
样!
 
在Dll入口输入调用的Handle,把它作为Dll中窗体的父
 
在主程序中定义接口函数call(aHandle:Thandle....)
在调用程序中用application.handle := aHandle
 
同意 诸葛白痴
 
DWORD dwStyle;
dwStyle = GetWindowLong(hWin,GWL_EXSTYLE);
dwStyle |= WS_EX_TOOLWINDOW;
SetWindowLong(Application->Handle,GWL_EXSTYLE,dwStyle)


C++ Builder的代码,自己改吧,加在窗口的构造函数中就行了,这样窗口就不会出现在
任务栏了
 
关键是Dll中的Application的handle值初始是不等于宿主程序的Applicaton.handle的,
所以调用者负责将宿主程序的Application句柄传递给dll,而dll负责将自己的Application的句柄
改成和宿主程序一致,然后将窗体的Owner改成Application。
详见“Delphi5开发人员指南”(很厚的那本,呵呵)
 
多人接受答案了。
 
后退
顶部