【系统】返回与Windows环境有关信息

  勇芳 2017-4-5 6909

Declare Function GetSystemMetrics Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long


获取当前Working Area大小,不包括任务栏:

    CRect rcWorkArea;

    SystemParametersInfo(SPI_GETWORKAREA, NULL, &rcWorkArea, NULL);

多显示器的时候可以使用SM_XVIRTUALSCREEN、SM_YVIRTUALSCREEN、SM_CXVIRTUALSCREEN和SM_CYVIRTUALSCREEN等参数获取虚拟屏幕的尺寸。

API:

要取得屏幕大小,可以用下面几个函数:

int  cx   =  GetSystemMetrics( SM_CXFULLSCREEN );

int  cy   =  GetSystemMetrics( SM_CYFULLSCREEN );

通过上边两个函数获取的是 显示屏幕的大小,但不包括任务栏等区域。


int  cx   =   GetSystemMetrics(   SM_CXSCREEN   );   

int  cy   =   GetSystemMetrics(   SM_CYSCREEN   );

这两个函数获取的是真正屏幕的大小。


MFC:

HDC hDC =  ::GetDC(HWND(NULL));               // 得到屏幕DC  

int x  =  ::GetDeviceCaps(hDC,HORZRES);       // 宽  

int y  =  ::GetDeviceCaps(hDC,VERTRES);        // 高   

::ReleaseDC(HWND(NULL),hDC);                  // 释放DC


SM_ARRANGE                         设置windows如何排列最小化窗口的一个标志。参考api32.txt中的ARW常数 

SM_CLEANBOOT                       指定启动模式。0=普通模式;1=带网络支持的安全模式 

SM_CMETRICS                        可用系统环境的数量 

SM_CMOUSEBUTTON                    鼠标按钮(按键)的数量。如没有鼠标,就为零 

SM_CXBORDER, SM_CYBORDER           尺寸不可变边框的大小 

SM_CXCURSOR, SM_CYCURSOR           标准指针大小 

SM_CXDLGFRAME, SM_CYDLGFRAME       对话框边框的大小 

SM_CXDOUBLECLK, SM_CYDOUBLECLK     双击区域的大小(参考注解) 

SM_CXFRAME, SM_CYFRAME             尺寸可变边框的大小(在win95和nt 4.0中使用SM_C?FIXEDFRAME) 

SM_CXFULLSCREEN, SM_CYFULLSCREEN   最大化窗口客户区的大小 

SM_CXHSCROLL, SM_CYHSCROLL         水平滚动条上的箭头大小 

SM_CXHTHUMB, SM_CYHTHUMB           滚动块在水平滚动条上的大小 

SM_CXICON, SM_CYICON               标准图标的大小 

SM_CXICONSPACING, SM_CYICONSPACING 桌面图标之间的间隔距离。在win95和nt 4.0中是指大图标的间距 

SM_CXMAXIMIZED, SM_CYMAXIMIZED     最大化窗口的默认尺寸 

SM_CXMAXTRACK, SM_CYMAXTRACK       改变窗口大小时,最大的轨迹宽度 

SM_CXMENUCHECK, SM_CYMENUCHECK     菜单复选号位图的大小 

SM_CXMENUSIZE, SM_CYMENUSIZE       菜单栏上的按钮大小 

SM_CXMIN, SM_CYMIN                 窗口的最小尺寸 

SM_CXMINIMIZED, SM_CYMINIMIZED     最小化的窗口必须填充进去的一个矩形小于或等于SM_C?ICONSPACING 

SM_CXMINTRACK, SM_CYMINTRACK       窗口的最小轨迹宽度 

SM_CXSCREEN, SM_CYSCREEN           屏幕大小 

SM_CXSIZE, SM_CYSIZE               标题栏位图的大小 

SM_CXSIZEFRAME, SM_CYSIZEFRAME     具有WS_THICKFRAME样式的窗口的大小 

SM_CXSMICON, SM_CYSMICON           小图标的大小 

SM_CXSMSIZE, SM_CYSMSIZE           小标题按钮的大小 

SM_CXVSCROLL, SM_CYVSCROLL         垂直滚动条中的箭头按钮的大小 

SM_CYCAPTION                       窗口标题的高度 

SM_CYKANJIWINDOW                   Kanji窗口的大小(Height of Kanji window) 

SM_CYMENU                          菜单高度 

SM_CYSMCAPTION                     小标题的高度 

SM_CYVTHUMB                        垂直滚动条上滚动块的高度 

SM_DBCSENABLED                     如支持双字节则为TRUE 

SM_DEBUG                           如windows的调试版正在运行,则为TRUE 

SM_MENUDROPALIGNMENT               如弹出式菜单对齐菜单栏项目的左侧,则为零 

SM_MIDEASTENABLED                  允许了希伯来和阿拉伯语 

SM_MOUSEPRESENT                    如安装了鼠标则为TRUE 

SM_MOUSEWHEELPRESENT               如安装了带轮鼠标则为TRUE;只适用于nt 4.0 

SM_NETWORK                         如安装了网络,则设置位0。其他位保留未用 

SM_PENWINDOWS                      如装载了支持笔窗口的DLL,则表示笔窗口的句柄 

SM_SECURE                          如安装了安全(保密)机制,则为TRUE 

SM_SHOWSOUNDS                      强制视觉提示播放声音 

SM_SLOWMACHINE                     系统速度太慢,但仍在运行中(System is too slow for effective use but is being run anyway) 

SM_SWAPBUTTON                      如左右鼠标键已经交换,则为TRUE


因国家互联网安全管理要求,关闭回帖功能。大家需要留言,请使用【勇芳软件客服】即时联系勇芳点此打开->>勇芳软件客服
返回
联系勇芳
发新帖 搜索 反馈 回顶部