QT 阻止窗口放大

在做Qt程序界面开发过程中,测试按组合键win + up 使 界面放大了,为了阻止界面放大,保持原状,此时需要用到PMINMAXINFO:

/*
 * Struct pointed to by WM_GETMINMAXINFO lParam
 */
typedef struct tagMINMAXINFO {
    POINT ptReserved;                       //保留参数                
    POINT ptMaxSize;                         //最大值
    POINT ptMaxPosition;                   //最大放置点
    POINT ptMinTrackSize;                //最小拖动范围
    POINT ptMaxTrackSize;               //最大拖动范围
} MINMAXINFO, *PMINMAXINFO, *LPMINMAXINFO;

case WM_GETMINMAXINFO:
     MINMAXINFO *mminfo;
     mminfo=(PMINMAXINFO)lParam;
   
     mminfo->ptMinTrackSize.x=200;
     mminfo->ptMinTrackSize.y=200;

     mminfo->ptMaxSize.x=300;
     mminfo->ptMaxSize.y=300;

     mminfo->ptMaxPosition.x=0;
     mminfo->ptMaxPosition.y=0;

     mminfo->ptMaxTrackSize.x=300;
     mminfo->ptMaxTrackSize.y=300;
     break;

在MFC中通过相应WM_GETMINMAXINFO消息后之需要在他的基础上添加一些代码就行 利用以上的代码就可以控制窗口的大小(300,300),最大化后会出现在(0,0)位置处,鼠标拖动改变窗口大小时,最大为(300,300),最小为(200,200)。其中的单位都是像素。

QT程序中的使用:

bool  xxxx::nativeEvent(const QByteArray &eventType, void *message, long *result)
{
    MSG *msg = (MSG*)message;

    //窗口显示时的大小的信号
    if (msg->message == WM_GETMINMAXINFO)
    {
        //使窗口保持原状,不变
        PMINMAXINFO pMinMaxInfo = (PMINMAXINFO)msg->lParam;
        pMinMaxInfo->ptMaxSize.x = DLG_MINIMIZE_W;  //默认窗口宽度
        pMinMaxInfo->ptMaxSize.y = DLG_MINIMIZE_H;  //默认窗口高度
        return true;
    }

   return QWidget::nativeEvent(eventType, message, result);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值