UpdateLayeredWindowIndirect failed for ptDst=
说明UpdateLayeredWindowIndirect failed for ptDst…此类问题具体,刚开始我也不知道 为啥触发此类问题,分层窗口UpdateLayeredWindowIndirect FunctionUpdates the position, size, shape, content, and translucency of a layered window.更新分层窗口的
说明
UpdateLayeredWindowIndirect failed for ptDst…
此类问题具体, 刚开始我也不知道 为啥触发此类问题,
分层窗口
UpdateLayeredWindowIndirect Function
Updates the position, size, shape, content, and translucency of a layered window.
更新分层窗口的位置、大小、形状、内容和半透明度。
语法
BOOL UpdateLayeredWindowIndirect(
HWND hwnd,
const UPDATELAYEREDWINDOWINFO *pULWInfo
);
Parameters
参数说明
hwnd
[in] Handle to a layered window. A layered window is created by specifying WS_EX_LAYERED when creating the window with the CreateWindowEx function.
pULWInfo
[in] Pointer to an UPDATELAYEREDWINDOWINFO structure that contains the information for the window.
返回值
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
UpdateLayeredWindowIndirect 类似于 UpdateLayeredWindow,但使用 UPDATELAYEREDWINDOWINFO 结构来包含通过其参数提供给 UpdateLayeredWindow 的大部分信息。
UpdateLayeredWindowIndirect 函数保持窗口在屏幕上的外观。由于调用了 UpdateLayeredWindowIndirect,分层窗口下面的窗口不需要重新绘制,因为系统会自动重新绘制它们。这允许分层窗口的无缝动画。
UpdateLayeredWindowIndirect 始终更新整个窗口。要更新窗口的一部分,请使用传统的 WM_PAINT 并使用 SetLayeredWindowAttributes 设置混合值。
为了通过分层窗口和任何底层窗口获得最佳绘图性能,分层窗口应尽可能小。当显示器的颜色深度改变时,应用程序还应该处理消息并重新创建它的分层窗口。
这些说明函数是windows api 接口。
然后 我就寻思, 怎么会调用windows API,我也没调用啊, 然后想着与windows 相关设置, 秃然想起Qt 窗口属性设置有个这个接口,
setWindowFlags(Qt::Window);
//表示widget是一个窗口,通常有一个窗口系统框架和一个标题栏,不管widget是否有父级。 请注意,如果小部件没有父级,则无法取消设置此标志。 此窗口属性设置就是表明它有着windows 窗口属性。 底层的话, 我预估表明的是可能与windows 相关窗口问题。
当我取消设置setWindowFlags为Qt::Window, 为其他属性时, 该问题就没有在编译期间出现了.
可能还有一些在设置阴影效果时, 也会产生, 但是应该注意设置阴影效果的是哪一个窗口, 以及该窗口的属性机制。
更多推荐
所有评论(0)