SetParent说明: MSDN-SetParent()
这个方法的原型大概是这样的(WinUser.h):
WINUSERAPI
HWND
WINAPI
SetParent(
_In_ HWND hWndChild,
_In_opt_ HWND hWndNewParent);
使用这个方法在劫持一些Style包含 WS_POPUP
的WIN32窗体时会出现劫持失败的情况(一般就是被劫持的窗体消失,指定的父窗体里没有出现子窗体)这是因为一般POPUP的窗体是不支持直接劫持的……MSDN里说的是 For compatibility reasons, SetParent does not modify the WS_CHILD or WS_POPUP window styles of the window whose parent is being changed.
能用SetParent劫持的窗体一般需要有 WS_CHILD
(或者 WS_CHILDWINDOW
的样式,两者是完全一样的),在 WinUser.h
里,代码是这样的:
/*
* Window Styles
*/
...
#define WS_POPUP 0x80000000L
#define WS_CHILD 0x40000000L
...
#define WS_POPUPWINDOW (WS_POPUP | \
WS_BORDER | \