【发布时间】:2013-02-13 22:26:25
【问题描述】:
我有一个从非 VCL 主机应用程序加载的混合 CBuilder/Delphi dll。我正在使用 RAD Studio XE2。加载 dll 后,我将应用程序句柄设置为主机的主窗体,这具有使我的窗体和对话框远离任务栏的效果。但是我想在任务栏上显示进度条并将其与主机应用程序堆叠在一起。我用谷歌搜索并广泛搜索,但找不到类似的东西。
博士。 Bob 写了一篇很好的教程here 关于任务栏的各种功能,从中我得到了一个进度条显示在主应用程序的任务栏按钮中,但我真的想为进度条创建第二个“堆叠”图标,很多应用程序都会这样做。 Bob 博士的示例假设您是主应用程序的一部分,并使用此代码添加选项卡:
if not Application.MainFormOnTaskBar then
FormHandle := Application.Handle
else FormHandle := Application.MainForm.Handle;
TaskbarList.AddTab(FormHandle);
在我的情况下没有任何作用。我试过了
FormHandle := FindWindow('TfmProg', NIL);
TaskbarList.addTab(FormHandle);
但这不会改变任何事情。
我已经创建了表单,其所有者为 Application,并且为 NIL。我已经创建了 fsNormal 或 fsStayOnTop。坦率地说,我已经触及了我能得到的所有参数,但似乎没有任何效果。
【问题讨论】:
-
如果
AddTab未能添加选项卡,它应该返回一个 HResult 告诉你原因。在这种情况下它告诉你什么? -
你好@RobKennedy,返回的值是 0,或者我认为是 s_ok。我怀疑标签创建正确但父级错误,可能是隐藏表单?
标签: delphi dll windows-7 delphi-xe2