当前位置:  开发笔记 > 编程语言 > 正文

SystemParametersInfo将壁纸设置为黑色(使用SPI_SETDESKWALLPAPER)

如何解决《SystemParametersInfo将壁纸设置为黑色(使用SPI_SETDESKWALLPAPER)》经验,为你挑选了1个好方法。

我尝试更改桌面壁纸.当我像这样使用它时它工作得很好:

SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "C:\\1.jpg", SPIF_SENDCHANGE);

但是当我像这样使用它时,桌面壁纸设置为完全黑色:

std::string s = "C:\\1.jpg";
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, &s, SPIF_SENDCHANGE);

我试图通过使用获得更多信息GetLastError(),但返回值只是0.我也尝试使用.png文件,但这不会改变任何东西.

我有什么想法我做错了吗?



1> Violet Giraf..:

试试这个:

SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, (void*)s.c_str(), SPIF_SENDCHANGE);

SystemParametersInfo函数不接受std::string指针作为路径,它接受以null结尾的char数组.这是提供的c_str()方法std::string.


@AngelusMortis错误的结论; 而Windows API只与C字符串兼容,而不是C++``对象
推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有