zoukankan      html  css  js  c++  java
  • MFC中设置对话框/窗体大小固定

    对话框:
    1、响应WM_GETMINMAXINFO消息(设置lpMMI->ptMinTrackSize和lpMMI->ptMaxTrackSize)
    2、响应消息WM_SYSCOMMAND,屏蔽SC_SIZE(if((nID & 0xFFF0) == SC_SIZE) return;)
    3、响应WM_NCHITTEST消息,如下:
    UINT CXxDlg::OnNcHitTest(CPoint point) 

    {
    UINT ht = CDialog::OnNcHitTest(point);
    if(ht >= HTLEFT && ht <= HTBOTTOMRIGHT)
    ht = HTBORDER;
    return ht;
    }
    4、直接拿掉窗口的THICKFRAME风格即可:
    ModifyStyle(m_hWnd,WS_THICKFRAME,0,0);

     MINMAXINFO结构如下:
    typedef struct tagMINMAXINFO {
    POINT ptReserved;
    POINT ptMaxSize;  //控制窗口最大化时的宽度(point.x)和高度(point.y)
    POINT ptMaxPosition;
    //控制窗口最大化时左边(point.x)和上边距离屏幕左上角的位置(point.y)
      POINT ptMinTrackSize;
    //控制窗口拖拉后的最小尺寸的宽度(point.x)和高度(point.y)
      POINT ptMaxTrackSize;
    //控制窗口拖拉后的最大尺寸的宽度(point.x)和高度(point.y)
    } MINMAXINFO;

    窗体:

    在MainFrm.cpp的PreCreateWindow中的//TODO注释部分后面增加:

    cs.style &= ~WS_THICKFRAME; //去掉可改变大小的边框
    cs.style |= WS_DLGFRAME; //增加不能改变大小的边框
  • 相关阅读:
    MyBatis原理分析
    oracle修改数据遇到的坑
    oracle查询时遇到的坑
    maven镜像
    易错题
    binlog2sql 安装使用
    Archery SQL审核平台搭建
    Docker安装
    夜莺n9e监控搭建
    influxdb安装
  • 原文地址:https://www.cnblogs.com/fastcam/p/4948015.html
Copyright © 2011-2022 走看看