在C#中获取并设置Windows桌面图标大小

时间:2010-09-24 20:29:28

标签: c# windows

我想在Windows Vista和7中设置和设置桌面图标大小 - 现在桌面允许使用Ctrl-MouseWheel重新调整图标大小,我想使用C#来实现。 是的,我可以将WM_MOUSEWHEEL消息发送到桌面列表视图句柄,但这有两个缺点:

  • 我没有当前大小,因此我必须多次发送消息,直到我达到已知状态(最大或最小大小),然后再次发送消息以调整大小到所需大小
  • 上述过程很慢(我必须发送许多消息才能达到所需的大小,这不能一步完成)并且当它达到已知状态时有时会闪烁。

我想知道是否有办法获取当前图标大小并以编程方式将其设置为其他大小

2 个答案:

答案 0 :(得分:0)

我知道您可以使用SystemInformation class轻松地获取图标的大小。似乎没有setter,所以你可能需要深入挖掘并使用系统的SystemParameterInfo() function。请参阅SPI_GETICONMETRICSSPI_SETICONMETRICS参数。

答案 1 :(得分:0)

似乎唯一的办法是通过注册表。请看this page的中间位置(“在Windows中时”)。

<强>更新

好的,我现在看到你在说什么。您需要使用桌面的IFolderView(CurrentViewMode)或IFolderView2(ViewModeAndIconSize)。