gpt4 book ai didi

c# - 在 C# 中绘制 Windows 任务栏

转载 作者:太空宇宙 更新时间:2023-11-03 23:18:40 27 4
gpt4 key购买 nike

我想为 Windows 制作一个二进制时钟。但我希望它替换默认时钟(有 2 个时钟不是最佳选择)。

因此,其中一种方法就是在旧时钟之上绘制我的二进制时钟。我怎么做?允许使用外部库。

我试过这样的东西:

    public Form1()
{
InitializeComponent();
this.Paint += new PaintEventHandler(Form1_Paint);
}

private void Form1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.FillEllipse(new SolidBrush(Color.Blue), new Rectangle(1500, 790, 20, 20));
}

但它没有到达任务栏(右下角): ellipse not reaching taskbar

如果事实证明这是不可能的,我会提出另一个关于 table 带的问题。但现在我想问的是在 Windows 任务栏上绘图。

最佳答案

这种方法有很多问题。

  1. 任务栏独立于您的应用程序而存在。您不能很容易地在它上面绘图,您需要通过 Windows SDK 才能与之交互(例如,自定义应用程序的弹出窗口预览)。此外,如果 Windows 允许每个想要在任务栏顶部绘制的应用程序这样做,那将是一个糟糕的想法。如果每个人都画谁赢?

  2. 即使您可以在它上面绘图,您也必须考虑它及其弹出窗口所做的每一件事。它有多宽?如果你点击日历会发生什么?如果风格不同怎么办?如果有多个时钟怎么办?用户甚至有权对时钟进行操作吗?

  3. 没有替换时钟的内置方法。替换确实存在,但主要是通过 Hook 弹出窗口并执行我在第二个选项中列出的操作。参见 T-Clock举个例子。

走另一条路会好得多。

关于c# - 在 C# 中绘制 Windows 任务栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36267682/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com