【问题标题】:Borderless Taskbar items: Using a right click menu (VB6)无边框任务栏项目:使用右键菜单 (VB6)
【发布时间】:2008-10-01 12:39:49
【问题描述】:

即使 BorderStyle 设置为 0,也可以通过打开 ShowInTaskbar 属性或直接使用 windows api 来强制窗口显示在任务栏上:SetWindowLong Me.hwnd, GWL_EXSTYLE, GetWindowLong(Me.hwnd, Win.GWL_EXSTYLE) Or Win.WS_EX_APPWINDOW。但是,此类任务栏条目在其任务栏条目中缺少右键单击菜单。右键单击它们不会显示上下文菜单。有没有办法将标准或自定义处理程序附加到它?

【问题讨论】:

    标签: winapi vb6


    【解决方案1】:

    如果没有 hack,我想你会被困在这里,很抱歉。当您设置 VB6 无边框属性时,您固有地禁用了控件菜单。控制菜单(通常通过右键单击窗口的标题栏或左键单击左上角的图标来激活)是在任务栏中右键单击窗口时显示的内容。

    现在,如果您想破解,您也许可以“模拟”行为,使用户不知道其中的区别。我是从this message thread on usenet 那里得到这个想法的。

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

    存根表单不是无边界的,并且不能停用控制菜单。它位于屏幕外并以尽可能小的尺寸放置。您将响应其表单级事件,然后使用这些事件将适当的行为传达给无边界表单。

    这是 hack 的一般要点。如果我现在不在工作,我会创建一个简单的 VB6 项目,看看是否可以为您工作。

    【讨论】:

    • 模拟看起来很丑陋,并且有许多特质,如果没有更多的黑客攻击,其中一些可能无法解决。看起来很糟糕,我更喜欢根本没有右键菜单。
    • 说实话,这是我的建议……我只给了你技巧,因为“没有答案”在技术上并不正确。 :) 没有干净的答案。是否可以让表单不无边框,带回控制菜单?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    • 2021-02-24
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多