我尝试使用 GetDesktopWindow() 在我的 Windows 桌面上绘画。但我失败了,因为桌面会迅速重新粉刷自己,而我的画没有出现。所以我需要将 GetDesktopWindow() 获得的桌面窗口替换为 ownerdraw 应用程序窗口 谁能有一个想法,怎么做?
提前致谢,米兰
我尝试使用 GetDesktopWindow() 在我的 Windows 桌面上绘画。但我失败了,因为桌面会迅速重新粉刷自己,而我的画没有出现。所以我需要将 GetDesktopWindow() 获得的桌面窗口替换为 ownerdraw 应用程序窗口 谁能有一个想法,怎么做?
提前致谢,米兰
我不认为这是可能的。当我编写一个操纵桌面的“桌面玩具”时,我所做的是截取屏幕截图,创建一个与桌面一样大的窗口,然后将屏幕截图放在我的应用程序窗口的背面。当然,这确实阻止了开始菜单和桌面图标之类的工作,但这对我来说很好,不知道你在做什么。
您可以尝试对从 GetDesktopWindow() 获得的窗口进行子类化...虽然我怀疑 Windows 有针对这种恶作剧的保护措施。
您无法替换桌面窗口。但是你可以让它画你想要的任何东西。
只需将要绘制的任何内容放入位图中,然后使用SystemParametersInfo将其选择为桌面背景位图 SPI_SETDESKTOPWALLPAPER
我对 Windows 桌面有一些不满,我正在评估的一种选择是 Windows KDE ...
那是(通常)基于 Linux Qt 的 KDE 窗口系统的 Windows 版本。
我在安装信息中解释了如何替换 windows shell(桌面)。就我而言,我玩得很安全。我保留了我的旧帐户(为简单起见,我只是在以管理员身份登录时将帐户信息复制到“我的副本”文件夹)。
我正在使用 KDE 作为单独的用户进行评估。
作为问题的答案,有信息。在安装文档和代码库中覆盖 96% 的问题。与我们大多数人分享其余部分:-)
\_w_/
您可以将注册表中的默认 shell 更改为您自己的应用程序。
我尝试在注册表中用 cmd.exe 替换 explorer.exe 并且它有效。当我重新启动机器时,我只能看到一个命令提示符。
作为管理员,创建 C:/windows/explorer.exe 的副本并将其保存为 explorer.exe.old,删除 explorer.exe,并将您的应用程序复制到 C:/windows 作为 explorer.exe。重新启动,登录,理论上,它应该在那里。