我在工程的主窗口里,用ocx.create(self)方法创建了一个自己开发的activexform控件类型的对象,
在程序运行时,凡是这个控件里打开的窗口(在控件里通过form.create(self),然后showmodal),都会在windows的任务栏里显示出来,这样打开的窗口多了以后,windows任务栏里就会排满了窗口。
为什么不能像在一个工程里那样,不管打开多少个窗口,在windows任务栏里始终只显示程序的主窗口?
在程序运行时,凡是这个控件里打开的窗口(在控件里通过form.create(self),然后showmodal),都会在windows的任务栏里显示出来,这样打开的窗口多了以后,windows任务栏里就会排满了窗口。
为什么不能像在一个工程里那样,不管打开多少个窗口,在windows任务栏里始终只显示程序的主窗口?
解决方案 »
- boolean缺省值居然是true,一直以为是false呢~!
- 多线程问题:线程类Execute中调用了别的对象的方法,这个方法中如何使用Synchronize
- _______ 恼人的TADOQuery和TADOTable更新问题!请教各位前辈!
- 服务器上如何获取客户端的ip地址,如果是远程登录的要知道它的外网ip。分不够可以加!
- 散分啦!谁有免费的mapobject2.0或以上的软件,下载的网址也可以!高分相送!上者有分!
- ADO,C/S结构,缓存模式下,怎么返回已修改但尚未UpdateBatch修改前的值?怎么返回已删除但尚未UpdateBatch的字段值?
- print控件
- 100分,再次请教!(刚才一位朋友回的我怎么也看不懂!)
- 哪有D6的补丁下载? (送20分 在线等)
- 该怎么写代码来判断?
- 简单问题:::如何获得系统日期的年份,不要月和日的??
- TsimpleDataset. ApplyUpdates(0)怎么老出错?
记住原来的Application对象.
在OCX中设置Application=传递进来的Application,释放OCX的时候还原Application.
如果在ocx中做一个接口来接收,那接收的参数类型怎么设置?
Application.Handle
你自己测试一下,我以前写Dll的时候也有这种现象,反正是通过Application搞定的.
你然后创建窗体用:Create(Application)
下面的代码放在EXE中:
TFunction1=procedure Stdcall;
TFunction2=procedure (HostAppHandle: THandle); Stdcall;procedure TForm1.BitBtn2Click(Sender: TObject);
var
handle: THandle;
myFunction1: TFunction1;
myFunction2: TFunction2;
begin
//加载插件
handle:=LoadLibrary('H:\MyProgram\BBS\Bin\test.dll');
if handle <= 0 then
begin
MessageBox(Application.Handle,'无法加载动态库','asf',MB_OK);
exit;
end;//获取插件初始化函数地址
@myFunction1:=GetProcAddress(handle,'showForm2');
@myFunction2:=GetProcAddress(handle,'SetApplicationHandle');
if not Assigned(myFunction1) then
begin
MessageBox(Application.Handle,'无效的动态库','asf',MB_OK);
FreeLibrary(handle);
exit;
end;
//myFunction2(Application.Handle);
myFunction1;end;
你创建一个DLL,导出两个函数
TFunction1=procedure Stdcall;
TFunction2=procedure (HostAppHandle: THandle); Stdcall;
TFunction1,用于show一个FORM,
AForm.Create(Application).Show;TFunction2,用于设置Application.handle:
Application.Handle:=HostAppHandle;运行EXE,此时点击按钮,必然在状态条上出现两个任务条.现在将Exe程序中的:
//myFunction2(Application.Handle);取消注释.在运行程序,则只有一个任务条了.
我想OCX也有这个问题,可能途径不同.你自己查资料.