函数原型如下:
void CWnd::Attach(HWND hWndNew);
其中,hWndNew 是要关联的窗口句柄。
使用 Attach 的主要场景是在已有的窗口上创建 MFC CWnd 对象。这通常在子类中使用,以便在 MFC 框架中使用 Windows 控件或者扩展功能。
以下是一个简单的示例,展示了如何使用 Attach 方法:
// 假设有一个已存在的窗口句柄 hWndExisting
HWND hWndExisting = ::CreateWindowEx(0, _T("STATIC"), _T("Hello, World!"), WS_OVERLAPPEDWINDOW,
100, 100, 400, 200, NULL, NULL, AfxGetInstanceHandle(), NULL);
// 使用 CWnd 对象关联这个窗口句柄
CWnd myWnd;
myWnd.Attach(hWndExisting);
// 现在可以使用 myWnd 来操作 hWndExisting 关联的窗口
myWnd.ShowWindow(SW_SHOWNORMAL);
// 在合适的时候,可以调用 Detach 来解除关联
myWnd.Detach();
这个示例中,通过 Attach 方法将已存在的窗口句柄与 CWnd 对象关联,然后可以通过 CWnd 对象调用 MFC 提供的方法来操作这个窗口。最后,通过 Detach 方法解除关联,但通常在对象生命周期结束时会自动执行解除关联的操作。
转载请注明出处:http://www.pingtaimeng.com/article/detail/23426/MFC/CWnd