在 DuiLib 中禁止用户通过鼠标调整窗口大小,你可以通过重写窗口类的 OnNcCalcSize 函数来实现。
以下是一个示例代码,演示如何禁止用户通过鼠标调整窗口大小:
class CMainFrame : public WindowImplBase
{
public:
...
protected:
virtual void OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp) override;
};
void CMainFrame::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp)
{
if (bCalcValidRects)
{
// 禁止调整窗口大小,设置边框宽度为0
lpncsp->rgrc[0].right -= GetSystemMetrics(SM_CXSIZEFRAME);
lpncsp->rgrc[0].bottom -= GetSystemMetrics(SM_CYSIZEFRAME);
}
__super::OnNcCalcSize(bCalcValidRects, lpncsp);
}
在以上示例中,我们重写了 DuiLib 的 WindowImplBase 类中的 OnNcCalcSize 函数,并在其中修改了计算有效矩形时的参数。通过减去系统指定的大小调整边框的尺寸(假设为 SM_CXSIZEFRAME 和 SM_CYSIZEFRAME),我们将窗口的可用区域设置为与原始大小相同,从而禁止了用户通过鼠标调整窗口大小。
请将示例代码中的 CMainFrame 替换为你实际使用的窗口类名,并根据实际情况进行相应修改。
内容由零声教学AI助手提供,问题来源于学员提问




