• MFC禁止改变窗口大小和移动窗口


    一、禁止对话框的移动

    (1)、第一种方法 为这个对话框添加系统消息过虑处理: .h中:

    afx_msg void OnSysCommand(UINT nID, LPARAM lParam);

    ... .cpp中

    BEGIN_MESSAGE_MAP(CXXXDlg, CDialog)

    ... ON_WM_SYSCOMMAND()

    ... END_MESSAGE_MAP()

    void CXXXDlg::OnSysCommand(UINT nID, LPARAM lParam)

    {

       if (nID == SC_MOVE || nID==0xF012)

         return;

      else

       CDialog::OnSysCommand(nID, lParam);

    }

    SC_MOVE就是0xF010。

    参考帖子:http://topic.csdn.net/t/20020821/12/957952.html

    (2)、第二种方法 .h中: ...

    afx_msg UINT OnNcHitTest(CPoint point);

    ... .cpp中

    BEGIN_MESSAGE_MAP(CXXXDlg, CDialog)

    ... ON_WM_NCHITTEST()

    ... END_MESSAGE_MAP()

    UINT CXXXDlg::OnNcHitTest(CPoint point)

    {

       int ret = CDialog::OnNcHitTest(point);

       if( HTCAPTION == ret)

         return HTCLIENT;

      return ret;

    }

    二、禁止对话框改变大小 .h中:

    ... afx_msg UINT OnNcHitTest(CPoint point);

    ... .cpp中 BEGIN_MESSAGE_MAP(CXXXDlg, CDialog)

    ... ON_WM_NCHITTEST()

    ... END_MESSAGE_MAP()

    UINT CXXXDlg::OnNcHitTest(CPoint point)

    {

      int ret = CDialog::OnNcHitTest(point);

       //if语句的前两行是用来禁止改变大小的,最后一行是用来禁止移动的

       if(HTTOP == ret || HTBOTTOM == ret || HTLEFT == ret || HTRIGHT == ret || HTBOTTOMLEFT == ret || HTBOTTOMRIGHT == ret || HTTOPLEFT == ret || HTTOPRIGHT == ret || HTCAPTION == ret)

       return HTCLIENT;

    return ret;

    }

  • 相关阅读:
    51nod 1416 两点 dfs
    Codeforces Round #424 (Div. 2) A-C
    Codeforces Round #423 (Div. 2) A-C
    Codeforces Round #422 (Div. 2) A-C
    HDU 6077 Time To Get Up 模拟
    51nod 1381 硬币游戏 概率
    51nod 1100 斜率最大 计算几何
    hihocoder 1287 : 数论一·Miller-Rabin质数测试 大质数判定
    字典树
    数论
  • 原文地址:https://www.cnblogs.com/fei12/p/456s.html
Copyright © 2020-2023  润新知