无边框任务栏项:使用右键菜单(VB6)

时间:2008-10-01 12:39:50

标签: winapi vb6

即使BorderStyle设置为0,也可以通过打开ShowInTaskbar属性或直接使用windows api强制窗口显示在任务栏上:{{1 }}。但是,此类任务栏条目在其任务栏条目中缺少右键单击菜单。右键单击它们不会执行任何操作,而不会显示上下文菜单。有没有办法,将标准或自定义处理程序附加到它?

1 个答案:

答案 0 :(得分:1)

没有黑客,我想你会被困在这里,我很遗憾地说。设置VB6无边界属性时,您将固有地禁用控制菜单。控制菜单(通常通过右键单击窗口的标题栏或左键单击左上角的图标来激活)是右键单击任务栏中的窗口时显示的内容。

现在,如果你有兴趣去攻击,你可能能够以一种用户不知道差异的方式“模拟”这种行为。我从this message thread on usenet得到了这个想法。

基本上,听起来你可以通过使用两种形式来破解它。一个表单立即最小化,并成为任务栏中的“存根”。另一种形式是您正在设计的形式(我们将其称为“主要”形式)。存根表单实际上是加载并显示您的主表单。

存根表单不是无边框的,不能取消激活控制菜单。它位于屏幕外,尺寸尽可能小。您将对其表单级别的事件做出响应,然后使用这些事件将适当的行为传达给无边界的表单。

这是黑客攻击的一般要点。如果我现在不在工作,我会制作一个简单的VB6项目,看看我是否可以让它为你工作。