【发布时间】:2017-03-24 05:33:12
【问题描述】:
我不想为此使用其他类,例如 codeproject.com 的 easysize 或 sizecbar。我正在使用 MFC CDialogEx。我试试这个:
LRESULT ChildDialog::OnNcHitTest(CPoint point)
{
// TODO: Add your message handler code here and/or call default
//UINT nHitTest = CWnd::OnNcHitTest(uParam, lParam);
//return (nHitTest == HTLEFT) ? HTNONE : nHitTest;
return CDialogEx::OnNcHitTest(point);
}
void ChildDialog::OnSizing(UINT fwSide, LPRECT pRect)
{
//
//TRACE("%d\n", fwSide);
if (fwSide == WMSZ_RIGHT)
{
SetClassLong(m_hWnd,
GCL_HCURSOR,
(LONG)LoadCursor(NULL, IDC_ARROW));
//ASSERT(FALSE);
//AfxMessageBox(_T("right"));
}
// TODO: Add your message handler code here
CDialogEx::OnSizing(fwSide, pRect);
}
当我单击对话框消息的右侧时,显示右侧。
正如您在投手中看到的那样,我尝试这样做。改变光标,画黑点线。仅在一侧调整对话框大小,并希望禁用所有角落和左、右和下。而且当我从上方调整对话框大小时也想移动上层控件。
我不希望有人为我做这一切。只是建议我如何做到这一点。我从软件depends.exe中获取这个投手。任何帮助将不胜感激。提前致谢。
【问题讨论】:
-
您在使用 Visual Studio 吗?您可以在 IDE 中设置所有调整大小的对话框。为什么要重新发明轮子?
-
@AndrewTruckle 是的,我正在使用带有 MFC 的 Visual Studio 2013。
-
考虑尝试 2015 或 2017 版本,因为它们在 IDE 中添加了对对话框调整大小的本机支持。我现在已经完全删除了我曾经依赖的 CSizingDialog 类。