我正在为Windows,Vista和7 (Win32和Win64)开发一个.
我已经在我的代码中实现了所有必要的接口(ITrayDeskBand、IDeskBandInfo、IDeskBand2、IDeskBand),而且所有接口的工作原理都完全正确(在Vista/7上没有其他人抱怨兼容性的警告)。
我遇到的问题是,我的Deskband表单出现在一个不透明的波段.此外,只显示某些控件(在本例中是包含PNG的TBitBtn和TImage )。我也需要它来正确地显示TEdit和TComboBox对象,但是它们根本不会出现。
我尝试在我的表单上启用GlassFrame和SheetOfGlass属性,但这一点都没有帮助。
此外,表单本身超过了任务栏的顶部边界,这意味着,如果光标与任务栏顶部位于我的桌面之上,则不能(例如)调整任务栏的大小。
我相信德尔福的VCL TForm类型在幕后做了一些事情,使得TForm类型作为一个Deskband容器不兼容……但这只是个怀疑。
下面是一个屏幕截图,说明了各种问题:

如您所见(上面),Deskband的表单是苍白的(而不是透明的),它重叠在任务栏的顶部(当任务栏“隐藏”时,防止调整大小和自动隐藏触发)
有什么想法吗?
UPDATE 1好吧,我一直在玩,注意到在创建用于桌面的TToolBar控件而不是表单时,观察到了一种完全不同的行为:

注意有三个TToolButton控件(由于眼镜主题,它们的文本实际上是不可见的)?在两个分隔符之间也应该有一个TEdit和TComboBox,但是这些分隔符完全不能显示。
还注意到伪装(实际任务栏图标的重复)?
我不确定这是否是朝着正确方向迈出的一步,但它可能会帮助您(或其他人)推断出解决方案!
发布于 2011-12-27 19:31:03
好吧..。我终于弄明白了,这是我遇到过的最荒谬的事情。
我在这里发布我的发现是为了其他人的利益(为了避免你经历我刚刚经历过的麻烦)。
要使桌面窗体上的所有控件显示并正常工作,只需将窗体的Visible属性(在IDE设计器中)设置为True即可。
荒谬,我知道,但它的工作和容易重复。
https://stackoverflow.com/questions/8646510
复制相似问题