大家都知道,在显示属性可以改的,包括使用大图标等,但要在程序中如何实现呢?
本人仅知道的相关api是SystemParametersInfo,但是百般尝试后无法成功,请知晓的大人们解答,谢了!

解决方案 »

  1.   

    int nRet,nSizeim;
    ICONMETRICS *p_im = new ICONMETRICS;
    nSizeim = sizeof(ICONMETRICS);
    p_im->cbSize = nSizeim;
    nRet = ::SystemParametersInfo(SPI_GETICONMETRICS,nSizeim,p_im,SPIF_UPDATEINIFILE);p_im->iHorzSpacing = 75;
    p_im->iVertSpacing = 75;//75,91,107 图表大小
    nRet = ::SystemParametersInfo(SPI_SETICONMETRICS,nSizeim,p_im,SPIF_UPDATEINIFILE);返回值nRet都是1,读取、设置图标大小成功
    但是只有 注销 或 重起 后才生效,我还不知道怎么解决
      

  2.   

    我知道了
    最后设置时,需要再加入SPIF_SENDWININICHANGE,可以立即生效nRet = ::SystemParametersInfo(SPI_SETICONMETRICS,nSizeim,p_im,SPIF_UPDATEINIFILE+ SPIF_SENDWININICHANGE);