工控编程吧

标题: 上位机MFC如何获得系统的度量信息 [打印本页]

作者: qq263946146    时间: 2019-8-11 21:16
标题: 上位机MFC如何获得系统的度量信息
操作系统一一些信息,比如桌面窗口大小,光标大小,标题栏大小等等都可以通过函数GetSystemMetrics来获得。
函数可以传递非常多参数,进而获得不同的信息。

  1. void CDemoDlg::OnTest()
  2. {
  3.         CListBox* pListBox = (CListBox*)GetDlgItem(IDC_LIST);
  4.         pListBox->ResetContent();

  5.         int nWidth = 0;
  6.         int nHeight = 0;
  7.         CString strText = _T("");

  8.         //屏幕大小
  9.         strText.Format(_T("屏幕大小:           %d × %d"),
  10.                 GetSystemMetrics(SM_CXSCREEN),
  11.                 GetSystemMetrics(SM_CYSCREEN));
  12.         pListBox->AddString(strText);

  13.         //全屏窗口客户区大小
  14.         strText.Format(_T("全屏窗口客户区大小: %d × %d"),
  15.                 GetSystemMetrics(SM_CXFULLSCREEN),
  16.                 GetSystemMetrics(SM_CYFULLSCREEN));
  17.         pListBox->AddString(strText);

  18.         //最大化窗口大小
  19.         strText.Format(_T("最大化窗口大小:     %d × %d"),
  20.                 GetSystemMetrics(SM_CXMAXIMIZED),
  21.                 GetSystemMetrics(SM_CYMAXIMIZED));
  22.         pListBox->AddString(strText);

  23.         //最小化窗口大小
  24.         strText.Format(_T("最小化窗口大小:     %d × %d"),
  25.                 GetSystemMetrics(SM_CXMINIMIZED),
  26.                 GetSystemMetrics(SM_CYMINIMIZED));
  27.         pListBox->AddString(strText);

  28.         //窗口边界大小
  29.         strText.Format(_T("窗口边界大小:       %d × %d"),
  30.                 GetSystemMetrics(SM_CXBORDER),
  31.                 GetSystemMetrics(SM_CYBORDER));
  32.         pListBox->AddString(strText);

  33.         //固定框架厚度
  34.         strText.Format(_T("固定框架厚度:       %d × %d"),
  35.                 GetSystemMetrics(SM_CXFIXEDFRAME),
  36.                 GetSystemMetrics(SM_CYFIXEDFRAME));
  37.         pListBox->AddString(strText);

  38.         //可变框架厚度
  39.         strText.Format(_T("可变框架厚度:       %d × %d"),
  40.                 GetSystemMetrics(SM_CXSIZEFRAME),
  41.                 GetSystemMetrics(SM_CYSIZEFRAME));
  42.         pListBox->AddString(strText);
  43.                                                                
  44.         //水平滚动条箭头大小
  45.         strText.Format(_T("水平滚动条箭头大小: %d × %d"),
  46.                 GetSystemMetrics(SM_CXHSCROLL),
  47.                 GetSystemMetrics(SM_CYHSCROLL));
  48.         pListBox->AddString(strText);

  49.         //垂直滚动条箭头大小
  50.         strText.Format(_T("垂直滚动条箭头大小: %d × %d"),
  51.                 GetSystemMetrics(SM_CXVSCROLL),
  52.                 GetSystemMetrics(SM_CYVSCROLL));
  53.         pListBox->AddString(strText);

  54.         //标题栏高度
  55.         strText.Format(_T("标题栏高度:         %d"),
  56.                 GetSystemMetrics(SM_CYCAPTION));
  57.         pListBox->AddString(strText);

  58.         //标题栏按钮大小
  59.         strText.Format(_T("标题栏按钮大小:     %d × %d"),
  60.                 GetSystemMetrics(SM_CXSIZE),
  61.                 GetSystemMetrics(SM_CYSIZE));
  62.         pListBox->AddString(strText);

  63.         //菜单栏高度
  64.         strText.Format(_T("菜单栏高度:         %d"),
  65.                 GetSystemMetrics(SM_CYMENU));
  66.         pListBox->AddString(strText);

  67.         //光标大小
  68.         strText.Format(_T(""));
  69.         strText.Format(_T("光标大小:           %d × %d"),
  70.                 GetSystemMetrics(SM_CXCURSOR),
  71.                 GetSystemMetrics(SM_CYCURSOR));
  72.         pListBox->AddString(strText);

  73.         //图标大小
  74.         strText.Format(_T(""));
  75.         strText.Format(_T("默认图标大小:       %d × %d"),
  76.                 GetSystemMetrics(SM_CXICON),
  77.                 GetSystemMetrics(SM_CYICON));
  78.         pListBox->AddString(strText);
  79. }
复制代码
上面代码就是一个按钮点击函数内实现系统度量信息的。
IDC_LIST为自己添加的列表框控件。







欢迎光临 工控编程吧 (https://www.gkbc8.com/) Powered by Discuz! X3.4