【问题标题】:How to change systray icon text style set by Shell_NotifyIcon如何更改由 Shell_NotifyIcon 设置的系统托盘图标文本样式
【发布时间】:2015-02-19 07:10:18
【问题描述】:

当您通过 Shell_NotifyIcon() 函数将图标添加到 Windows 系统托盘时,您可以设置鼠标悬停在图标上时显示的文本。

NOTIFYICONDATA  systray_icon;
systray_icon.cbSize = sizeof(NOTIFYICONDATA);
systray_icon.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
...
_tcscpy_s(systray_icon.szTip, TEXT("Icon text..."));
Shell_NotifyIcon(NIM_ADD, &systray_icon);

问题是:是否可以更改此文本的样式(设置为粗体/斜体,更改颜色)?

【问题讨论】:

    标签: c++ windows winapi system-tray


    【解决方案1】:

    没有。这不是按图标设置的;它是根据系统设置的。

    您可以做的(尽管要做的工作更多)是在图标上打开您自己的小窗口,然后自己控制它。当然,在这种情况下,您可以做任何您想做的事情 - 但您需要处理诸如窗口定位之类的事情(想想整个任务栏可以定位在右侧/顶部/左侧的事实)桌面,而不仅仅是底部。

    【讨论】:

    • 泰。这就是我所期待的,但希望有办法解决这个问题。
    • 您可以使用Shell_NotifyIconGetRect() 获取托盘图标的屏幕坐标。
    • 是的。但是你需要弄清楚它在屏幕上的位置(右上角?左下角?右下角?如果它在右下角,任务栏是水平的还是垂直的),那么你需要以某种方式定位你的窗口指向您的图标。如果您添加一个小箭头(如聊天窗口),则变得更加困难。去过也做过。不是微不足道的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多