当程序到改变到指定大小时,禁止再改变起大小

添加 WM_GETMINMAXINFO 事件.

void CMainFrame::OnGetMinMaxInfo(MINMAXINFO* lpMMI)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
lpMMI->ptMinTrackSize.x = 800; //窗口宽度由你设定
lpMMI->ptMinTrackSize.y = 600; //窗口高度 由你设定
CFrameWnd::OnGetMinMaxInfo(lpMMI);
}
### Qt 中禁止调整画布大小的方法 在Qt中,如果希望固定`QGraphicsView`或`Canvas`的尺寸而不允许用户通过拖拽或其他方式更改其大小,可以通过多种方式进行设置。 #### 对于 `QGraphicsView` 要防止用户改变`QGraphicsView`窗口大小,可以重载`resizeEvent()`函数并阻止任何试图修改组件尺寸的行为。另一种更简单的方法是在创建实例时直接设定固定的宽高,并禁用窗口的最化按钮以及调整大小的功能[^2]: ```cpp // C++ 示例代码 #include <QGraphicsView> class MyGraphicsView : public QGraphicsView { protected: void resizeEvent(QResizeEvent *event) override { // 阻止调整大小事件生效 event->ignore(); // 或者恢复到原始尺寸 this->resize(originalWidth, originalHeight); } }; ``` 另外一种做法是利用QWidget提供的API,在初始化阶段就锁定窗口尺寸: ```cpp view.setFixedSize(800, 600); // 设置固定宽度和高度 this->setWindowFlags(Qt::Dialog | Qt::MSWindowsFixedSizeDialogHint); // 禁止化和最小化 ``` #### 使用 QML 的 Canvas 当涉及到基于QML的应用程序中的`Canvas`元素时,则主要依赖于布局管理和显式指定canvas的高度和宽度来达到不可变的效果。确保这些属性被赋予具体的数值而不是动态计算出来的表达式即可保持不变[^3]: ```qml import QtQuick 2.15 Item { width: 400; height: 300 Canvas { id: fixedSizeCanvas anchors.fill: parent property int canvasWidth: 200 property int canvasHeight: 200 onPaint: { var ctx = getContext('2d'); // 绘制逻辑... } Component.onCompleted: { console.log(`Canvas size is ${fixedSizeCanvas.canvasWidth}x${fixedSizeCanvas.canvasHeight}`); } } } ``` 这里的关键在于给定明确的`width`和`height`值,并且不随父级项的变化而变化。这样就能有效地使画布维持在一个恒定的状态下工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值