我想在 windows 上的系统托盘通知图标上显示数字

I want to display numbers on the system tray notification Icons on windows

我正在尝试创建一个基于通知图标的应用程序,我想在其中显示一些 1-999 之间的数字。

我查看了 this video,这与我想做的类似,但这里系统托盘图标只显示图标,它显示弹出窗口而不是显示数字或任何文本的系统托盘图标.

除了弹出项,我只想读取一个数字(从某处输入)并在通知图标部分显示该数字。

我愿意尝试任何技术(QT、.net)来完成这项工作。基本上,我正在寻找一些示例。

虽然你的部分问题含糊不清,但这很有可能,我什至敢说很简单。既然你提到你愿意尝试任何技术,C# 可能会为你简化事情。

  • 生成一个新的 16 x 16 Bitmap 并使用 Graphics class.
  • 绘制数字
  • 在处置您的 Graphics 对象后,将 Image 实例转换为 Icon 实例。
  • NotifyIconIcon 属性 设置为您刚刚创建的图标。

这些是基本步骤。如果您不熟悉所使用的 classes,您可能需要做一些研究。

感谢您回答我的问题。这是我想出的。不知道你说的是不是这个。

位图 bmp = 新位图(WindowsFormsApplication2.Properties.Resources._16by16BitmapIcon);
RectangleF rectf = new RectangleF(2, 2, 16, 16);
图形 g = Graphics.FromImage(bmp);
g.DrawString("99", 新字体("Tahoma", 7), Brushes.Blue, rectf);
pictureBox1.Image = bmp;
pictureBox1.Height = bmp.Height;
pictureBox1.Width = bmp.Width;
g.Dispose();
var thumb = (Bitmap)bmp.GetThumbnailImage(64, 64, null, IntPtr.Zero);
thumb.MakeTransparent();
notifyIcon1.Icon = Icon.FromHandle(thumb.GetHicon());

现在我的下一个问题可以用更好的方式完成吗?这是我的第一个 C Sharp 应用程序,欢迎任何建议!

public void ShowText(string text, Font font, Color col)
{
    Brush brush = new SolidBrush(col);

    // Create a bitmap and draw text on it
    Bitmap bitmap = new Bitmap(16, 16);
    Graphics graphics = Graphics.FromImage(bitmap);
    graphics.DrawString(text, font, brush, 0, 0);

    // Convert the bitmap with text to an Icon
    Icon icon = Icon.FromHandle(bitmap.GetHicon());

    m_notifyIcon.Icon = icon;
}