我想刷新将鼠标悬停在 Windows 上的任务栏图标上(或 Alt+Tab 键)时显示的 aero 预览。
我发现了一个名为DwmInvalidateIconicBitmaps
的函数,它似乎很有前途,但是当我使用它时:
[DllImport("dwmapi.dll")]
static extern int DwmInvalidateIconicBitmaps(IntPtr hwnd);
...
int res = DwmInvalidateIconicBitmaps(MyWindowHandle);
res
设置为-2,147,024,809
.当我查看十六进制时,它出来了FFFF FFFF 8007 0057
,根据该网站,这似乎对应于E_INVALIDARG
。
但是,我的窗口句柄是有效的,并且可以在其他地方成功使用。我遇到的另一个网站提到,当无法加载DLL时,可能会引发此错误。这可能是问题所在吗?
我也没有在pinvoke网站上看到这个函数,尽管我确实看到了其他DWM函数,这很奇怪。
视窗 10/.NET Core
文档明确规定:
HWND
位图失效的窗口或选项卡的句柄 通过这个电话。此窗口必须属于调用进程。
如果不是这种情况,您将收到E_INVALIDARG
错误。