以下是 CFrameWnd::NegotiateBorderSpace 的基本语法:
BOOL CFrameWnd::NegotiateBorderSpace(UINT nBorderCmd, LPRECT lpRectBorder);
- nBorderCmd:指定边框命令,可以是 BORDER_COMMAND_SET 或 BORDER_COMMAND_GET。
- lpRectBorder:指向 RECT 结构的指针,用于传递或接收边框的空间。
这个方法用于协商 MDI 子窗口与其父框架窗口之间的边框空间。当 nBorderCmd 为 BORDER_COMMAND_SET 时,子窗口通过设置 lpRectBorder 来告诉父窗口需要的边框空间。当 nBorderCmd 为 BORDER_COMMAND_GET 时,父窗口通过 lpRectBorder 来告诉子窗口分配的边框空间。
以下是一个简单的例子:
void CMyChildFrame::OnGetMinMaxInfo(MINMAXINFO* lpMMI)
{
CFrameWnd::OnGetMinMaxInfo(lpMMI);
// 协商边框空间
RECT rectBorder;
if (NegotiateBorderSpace(BORDER_COMMAND_GET, &rectBorder))
{
// 处理获取到的边框空间
// ...
}
// 设置子窗口的最小尺寸
lpMMI->ptMinTrackSize.x = rectBorder.right - rectBorder.left;
lpMMI->ptMinTrackSize.y = rectBorder.bottom - rectBorder.top;
}
在这个例子中,OnGetMinMaxInfo 方法中调用了 NegotiateBorderSpace 来获取父窗口分配的边框空间,然后根据需要进行处理。确保在实际使用时根据你的应用程序的需求进行适当的处理。
转载请注明出处:http://www.pingtaimeng.com/article/detail/17908/MFC/CFrameWnd