感谢 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
处理程序等。