首页 文章

应用程序VS Express 2012的设置图标c

提问于
浏览
3

我一直在尝试将一个图标作为资源添加到我的应用程序中,以便使用c在VS 2012 Express中使用我的应用程序显示它 . 到目前为止,我已经拿起以下代码从其他问题和论坛添加到我的rc文件 .

IDI_APP ICON "resources/Icon.ico"

图标随exe一起显示在桌面上,程序运行时显示在任务栏上 . 但是在某些情况下,例如在任务管理器上,应用程序的图标不会显示,而是显示默认程序图标 . 我想知道是否有人知道如何更改我的代码,以便图标始终与我的程序相关联 . 我听说问题可能是由于需要不同尺寸的图标而导致的,但我在使用程序IcoFX创建的ico文件中有很多尺寸的图标 . 我还想知道我是否需要以编程方式设置图标,以便它可以在与应用程序关联的任何位置工作 . 我已经尝试重建和重命名我的程序来更新shell中的图标 . 我使用sfml窗口而不是winapi和HWND窗口 .

1 回答

  • 1
    • 仔细检查您是否创建了具有多种分辨率的单个.ico文件,通常为16x16,32x32,48x48,96x96 .

    • 用类似的东西加载你的图标

    ICON hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ICON1));
    
    • 使用图标的Windows消息通知
    //Change both icons to the same icon handle.
    SendMessage(hwnd, WM_SETICON, ICON_SMALL, hIcon);
    SendMessage(hwnd, WM_SETICON, ICON_BIG, hIcon);
    
    //This will ensure that the application icon gets changed too.
    SendMessage(GetWindow(hwnd, GW_OWNER), WM_SETICON, ICON_SMALL, hIcon);
    SendMessage(GetWindow(hwnd, GW_OWNER), WM_SETICON, ICON_BIG, hIcon);
    

    其他资源和参考:

    https://stackoverflow.com/a/19656000/1938163

    https://stackoverflow.com/a/2723270/1938163

相关问题