zoukankan      html  css  js  c++  java
  • SystemParametersInfo系统信息获取与设置,慎用

    MFC中可以用 SystemParametersInfo(……) 函数来获取和设置系统信息,如下面例子所示,改变的是系统菜单栏的高度。

    示例:改变系统菜单栏的高度

    NONCLIENTMETRICS ncm;
    ncm.cbSize = sizeof( NONCLIENTMETRICS );  //这个非常重要,否则下面函数调用将返回0,即ret=0,说明函数调用失败

    int ret=::SystemParametersInfo( SPI_GETNONCLIENTMETRICS,sizeof( NONCLIENTMETRICS ),&ncm,0);

    //CString str;
    //str.Format("return value:%d,%d",ret,ncm.iMenuHeight);
    //AfxMessageBox(str);

    ncm.iMenuHeight+=10;  //设置系统菜单高度加1
    ret=::SystemParametersInfo( SPI_SETNONCLIENTMETRICS,sizeof( NONCLIENTMETRICS ),&ncm,0); 

    //ret=::SystemParametersInfo( SPI_SETNONCLIENTMETRICS,sizeof( NONCLIENTMETRICS ),&ncm,SPIF_SENDCHANGE);

    // 最后一个参数为0或者SPIF_SENDCHANGE,后者表示将把改变写入update win.ini

    // str.Format("return value:%d,%d",ret,ncm.iMenuHeight);
    // AfxMessageBox(str);

    这里要特别说明的是,如果要使用它来设置应用程序的相关属性,请慎重,因为它改变的是操作系统的属性,也就是说系统上其他应用程序的属性也会被改变。

    用它来获取系统相关信息,如屏幕宽度、高度、菜单栏、标题栏高度等,还是比较好用的。

  • 相关阅读:
    用Docker执行Percona Server
    Java基础 笔记(七)
    VC与JavaScript交互(三) ———— JS调用C++
    4456: [Zjoi2016]旅行者|分治+最短路
    Swift语法学习之 方法
    JavaScript学习笔记二
    Latex 制作积分规则表格
    向MapReduce转换:计算共现关系
    王立平--switch case
    组队训练1 回放
  • 原文地址:https://www.cnblogs.com/lidabo/p/2735900.html
Copyright © 2011-2022 走看看