为什么SetParent会失败
SetParent是Windows提供的设置窗口父窗体的API,函数原型比较简单:
HWND SetParent(
|
我们通常的使用方法是:
if(!SetParent(hChild, hParent)) {
|
这种使用方法在大多情况下不会失败,但有时却会失败。究其原因,其在微软官方文档中已有说明SetParent Doc。
由于兼容性问题,SetParent函数不会修改hWndChild窗口的WS_CHILD和WS_POPUP样式,因此:
- 如果hWndNewParent为NULL,你需要在调用SetParent函数后清除
WS_CHILD并设置WS_POPUP样式。 - 如果hWndNewParent不为NULL并且hWndChild之前是桌面的子窗口,你需要在调用SetParent函数前清除
WS_POPUP并设置WS_CHILD样式。
总结上述原因,SetParent的正确使用方法如下:
bool SetWinParent(HWND hChild, HWND hNewParent) {
|
https://winsoft666.github.io/post/3832058229.html

浙公网安备 33010602011771号