我想在Windows

时间:2015-12-03 20:11:32

标签: windows notifications icons system system-tray

很抱歉,如果之前有人询问过。但我正在尝试创建一个基于图标的通知应用程序,我想用它来显示1-999之间的一些数字。

我看了https://www.youtube.com/watch?v=GZeTCcP-qmA&ab_channel=techhead287这与我想要做的类似但是在这里系统尝试图标只显示图标,它显示弹出窗口而不是系统托盘图标显示数字或任何文字。< / p>

排除弹出项目,我想要做的就是读取一个数字(从某处输入)并在通知图标部分显示该数字。

我愿意尝试任何技术(QT,.net)来做到这一点。基本上我正在寻找这些的一些例子。

任何想法都表示赞赏。

3 个答案:

答案 0 :(得分:2)

虽然你的部分问题很模糊,但这很有可能,我甚至敢说 - 很简单。既然你提到你开始尝试任何技术,C#可能会为你简化一些事情。

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

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

答案 1 :(得分:1)

感谢您回复我的问题。这就是我想出的。不确定这是不是你在说什么。

位图bmp =新位图(WindowsFormsApplication2.Properties.Resources._16by16BitmapIcon);
            RectangleF rectf = new RectangleF(2,2,16,16);
            图形g = Graphics.FromImage(bmp);
             g.DrawString(&#34; 99&#34;,new Font(&#34; Tahoma&#34;,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应用程序,欢迎任何建议!

答案 2 :(得分:0)

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;
}