首页 > 解决方案 > 向派生的 CMFCPropertySheet 类添加调整大小锚点

问题描述

感谢 Stack Overflow 的支持,我已经能够创建自己的CResizingMFCPropertySheet支持调整大小的。现在,我添加了一个调整大小的锚点,并使用了以下代码:

void CResizingMFCPropertySheet::InitialiseResizeIcon()
{
    CRect rcIcon, rcClient;

    m_bmpResize.LoadOEMBitmap(OBM_SIZE);
    m_lblResize.Create(0, WS_CHILD | WS_VISIBLE | SS_BITMAP, 
               CRect(0, 0, 16, 16), this, IDC_STATIC_RESIZE);
    m_lblResize.SetBitmap(m_bmpResize);

    GetClientRect(rcClient);
    m_lblResize.GetClientRect(rcIcon);
    m_lblResize.SetWindowPos(&CWnd::wndTop, rcClient.right - rcIcon.Width(), 
               rcClient.bottom - rcIcon.Height(), 0, 0, SWP_NOSIZE);
}

注意:以上代码已修改,不再使用动态布局 - 不起作用)。

该方法被调用OnInitDialog。首次显示工作表时,它看起来不错:

属性表

您可以在右下角看到锚点。现在,当我去调整窗口大小时:

调整工作表

如您所见,它没有正确渲染锚。

更新

我已经设置WS_CLIPSIBLINGS了,没有区别。

更新

只是为了让大家知道新主题抓手无法正常工作的原因是因为我没有添加OnNcHitTest处理程序等。

标签: mfccpropertysheet

解决方案


修改 CMFCPropertySheet 的样式并添加 WS_CLIPSIBLINGS!

也将 WS_CLIPSIBLINGS 添加到抓手窗口。

将 WS_CLIPCHILDREN 添加到 CPropertySheet。


推荐阅读