将磁贴添加到 MFC 应用程序
Posted
技术标签:
【中文标题】将磁贴添加到 MFC 应用程序【英文标题】:Adding a tile to an MFC application 【发布时间】:2015-11-05 08:24:57 【问题描述】:我有一个 C++ MFC 应用程序,它有一堆在 .rc 文件中定义的对话框。我需要向应用程序添加一个磁贴以将其固定到开始菜单,因为 Windows 从图标创建的默认“磁贴”看起来不太好。重写整个应用程序以使用 XAML 而不是 .rc 文件现在不是一个选项。磁贴不需要是交互式的,只需显示一个更好看的图片,而不是仅仅插入小图标。
有没有办法通过 .rc 文件?
如果没有,我的另一个想法是创建一个使用 XAML 创建磁贴的包装器应用程序,而包装器应用程序唯一要做的就是启动 MFC 应用程序。有人有更好的解决方案吗?
我正在使用 Visual Studio 2015。 我正在使用的 .ico 文件中包含 768x768、512x512、256x256、150x150、48x48、32x32 和 16x16 版本的图像。
编辑
对于我到底需要什么有些困惑。这是一个带注释的屏幕截图,希望能清楚地显示问题。
另一个澄清,我认为这没有任何区别,但我想我会添加它只是为了安全。程序不需要在Windows 8/8.1上运行,只需要在Windows7和Windows10上运行
【问题讨论】:
这可能无法解决问题,但是您是否尝试过将具有背景的图像作为 Alpha 通道?我问这个是因为显示的所有其他图像看起来都只是单色 alphachannel 图像,除了“在中国爆炸杀死至少 50 人”小部件 是的,我尝试过使用 Alpha 通道。它仍然只是磁贴上的一个小图像。 【参考方案1】:this->SetWindowText("SudeshMFCDemo");
https://msdn.microsoft.com/en-us/library/yhczy8bz(v=vs.90).aspx
【讨论】:
你是对的。我误读了这里的问题。但我有另一个链接,我认为这对你来说是合适的解决方案。 ucancode.net/Visual_C_MFC_Samples/… 不,这没有帮助。该链接处理应用程序中的图像,与开始菜单磁贴无关。【参考方案2】:经过广泛的研究,很明显这是不可能的。不仅 MFC 无法实现,而且创建磁贴(实时或静态)的唯一方法是使用 Windows 通用应用程序。所以我这里的解决方案是创建一个简单的启动器程序来启动 MFC 应用程序然后存在。但是,这里需要注意的是,不允许 Windows 通用程序直接运行其他程序。他们被允许做的是用它的默认程序打开一个文件。所以我创建了一个新的文件扩展名,并将默认应用程序指定为 MFC 程序。
【讨论】:
以上是关于将磁贴添加到 MFC 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
应用程序关闭时如何接收推送和通知(Toast 和磁贴) windows 通用 8.1 应用程序