我有一个用C ++编写的Windows应用程序(使用MFC) - Visual Studio 6.0。
用户希望所有菜单项(即来自主应用程序菜单)都更大,因为他有一个大显示器。该应用程序允许窗口内的(客户端)文本被绘制得更大,这不是一个问题。它只是菜单。
我可以将菜单作为CMenu对象获取,并从中导出HMENU句柄。我并不是特别想要改变为所有者 - 只是为了做一个简单的改变。
有没有办法告诉Windows使用更大版本的系统字体,仅用于菜单,仅适用于当前应用?用户不希望为所有应用程序(通过控制面板)制作更大的字体,因为这会破坏其他内容。
解决方案应该与Windows XP兼容 - 并非每个人都在运行最新版本的Windows。它也应该不影响对话框中使用的字体,因为它们的布局方式使得较大的字体可能会使文本的一部分消失。
答案 0 :(得分:1)
您可以使用某些工具,如BCG图书馆或其他工具,如Codejock,Prof-UIS。
所有这些库都使用自定义绘制菜单。因此,可以为该程序放大菜单的字体。
另一种简单的方法是:只需更新到更新的VS版本,即可获得新的菜单。所有者可以灵活地免费绘制菜单...
BTW:用户遇到同样的问题,对于其他程序,他应该找到一个更好的解决方案,比如缩放显示字体的大小......是的,这适用于所有应用程序答案 1 :(得分:-1)
您可以使用SPI_GETNONCLIENTMETRICS和SPI_SETNONCLIENTMETRICS尝试SystemParametersInfo并修改NONCLIENTMETRICS的lfMenuFont。
请参阅https://msdn.microsoft.com/en-us/library/windows/desktop/ff729175(v=vs.85).aspx