SetWindowLongPtrGWL_HWNDPARENT和SetParent有什么区别?

问题描述

我需要为桌面上的某些应用程序窗口创建一个水印窗口(markHwnd),水印窗口样式为:

            uint dwStyle = Win32API.WS_CLIPSIBLINGS |
                          Win32API.WS_CLIPCHILDREN |
                          Win32API.WS_POPUP;
            uint dwExStyle = Win32API.WS_EX_LAYERED |
                            Win32API.WS_EX_TRANSPARENT |
                            Win32API.WS_EX_NOACTIVATE |
                            Win32API.WS_EX_NOPARENTNOTIFY |
                            Win32API.WS_EX_TOOLWINDOW;
            markHwnd = Win32API.CreateWindowEx(dwExStyle,wndclassRegResult,ti.ToString(),dwStyle,IntPtr.Zero,wndclasshInstance,IntPtr.Zero);

然后将其设置为应用程序窗口(targetHwnd)的自有窗口,有两种选择:

  • SetWindowLongPtr(markHwnd,(int)Win32API.GWL.GWL_HWNDPARENT, targetHwnd);
  • SetParent(markHwnd,targetHwnd);

建议哪个?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)