[WINSDK]有没有办法实现MFC窗口类的SetOwner()

时间:2021-11-19 17:02:38
如题,有没有这样的一个或几个api函数能实现 这样的功能 ?

4 个解决方案

#1


带有 "WS_POPUP style"  窗口的 "父窗口" 叫 Owner 窗口.
所以 SetParent 后,  把 子窗口(WS_CHILD )改为 WS_POPUP 就可以了.
 

#2


[q uote=引用 1 楼 schlafenhamster 的回复:]
带有 "WS_POPUP style"  窗口的 "父窗口" 叫 Owner 窗口.
所以 SetParent 后,  把 子窗口(WS_CHILD )改为 WS_POPUP 就可以了.
 
======================================================
我试了一下,这样SetParent()后,子窗口不能放到父窗口外面。
依然不是SetOwner的功能吧
被拥有窗口是能放到所有者窗口外面的那种。

看下我的代码吧:

        /* HWND hOwner 已声明 */
HWND hOwned= CreateWindowEx(WS_EX_TOPMOST | WS_EX_TOOLWINDOW,TEXT("PINS"), NULL, WS_POPUP | WS_VISIBLE | WS_CLIPSIBLINGS ,300, -10, 32, 32, NULL,NULL,hInst, 0);
SetParent(hOwned, hOwner);

这样之后hOwned还是不能放到hOwner的外面,并且 GetWindow(hOwned,GW_OWNER)返回空值。
请问是不是哪里有错?

#3


WS_EX_TOPMOST | WS_EX_TOOLWINDOW 这2个风格改改看

#4


引用 3 楼 schlafenhamster 的回复:
WS_EX_TOPMOST | WS_EX_TOOLWINDOW 这2个风格改改看

========================================================
好了。我自己刚才 解决了。
应该是在CreateWindowEx()的hParent参数中直接 填 hOwner就好了,这样GetWindow(hOwned,GW_OWNER)也会正常返回值。
不管怎样,都谢谢你~

#1


带有 "WS_POPUP style"  窗口的 "父窗口" 叫 Owner 窗口.
所以 SetParent 后,  把 子窗口(WS_CHILD )改为 WS_POPUP 就可以了.
 

#2


[q uote=引用 1 楼 schlafenhamster 的回复:]
带有 "WS_POPUP style"  窗口的 "父窗口" 叫 Owner 窗口.
所以 SetParent 后,  把 子窗口(WS_CHILD )改为 WS_POPUP 就可以了.
 
======================================================
我试了一下,这样SetParent()后,子窗口不能放到父窗口外面。
依然不是SetOwner的功能吧
被拥有窗口是能放到所有者窗口外面的那种。

看下我的代码吧:

        /* HWND hOwner 已声明 */
HWND hOwned= CreateWindowEx(WS_EX_TOPMOST | WS_EX_TOOLWINDOW,TEXT("PINS"), NULL, WS_POPUP | WS_VISIBLE | WS_CLIPSIBLINGS ,300, -10, 32, 32, NULL,NULL,hInst, 0);
SetParent(hOwned, hOwner);

这样之后hOwned还是不能放到hOwner的外面,并且 GetWindow(hOwned,GW_OWNER)返回空值。
请问是不是哪里有错?

#3


WS_EX_TOPMOST | WS_EX_TOOLWINDOW 这2个风格改改看

#4


引用 3 楼 schlafenhamster 的回复:
WS_EX_TOPMOST | WS_EX_TOOLWINDOW 这2个风格改改看

========================================================
好了。我自己刚才 解决了。
应该是在CreateWindowEx()的hParent参数中直接 填 hOwner就好了,这样GetWindow(hOwned,GW_OWNER)也会正常返回值。
不管怎样,都谢谢你~