mfc - 向派生的 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
处理程序等。
解决方案
修改 CMFCPropertySheet 的样式并添加 WS_CLIPSIBLINGS!
也将 WS_CLIPSIBLINGS 添加到抓手窗口。
将 WS_CLIPCHILDREN 添加到 CPropertySheet。
推荐阅读
- javascript - javascript中的链接运算符如何工作?
- windows - 返回包含特定 Windows 位置中存在的文件的列表 - 使用 SAS EG
- c# - 继承是否也会自动从其父级“继承”命名空间?
- python - 如何在字典中将 NaN 转换为 0,python
- android - 在 Spinner 上查询 Firebase
- jquery - 一个复选框取消选中另一个
- angular - 带有自定义用户数据的 Angular Firebase Google 身份验证
- java - Android检查字符串是否在单词前包含数字
- r - 使用 lapply 时在每个文件之间添加空行
- umbraco7 - Umbraco 数据库连接达到最大池大小