VC学习日志--摘录(12.13)

1. 获取系统屏幕信息的GetSystemMetrics函数
函数声明: WINUSERAPI int WINAPI GetSystemMetrics( int nIndex);函数根据输入参数返回UserGet的系统信息,具体参数含义如下:
下面是GetSystemMetrics函数参数nIndex的定义:
SM_ARRANGE  返回是否预备最小化.
SM_CLEANBOOT 返回系统启动方式:
   0 正常启动
   1 安全模式启动
   2 网络安全模式启动
SM_CMOUSEBUTTONS 返回值为系统支持的鼠标键数,返回0,则系统中没有安装鼠标。
SM_CXBORDER,
SM_CYBORDER 返回以相素值为单位的Windows窗口边框的宽度和高度,如果Windows的为3D形态,则
等同于SM_CXEDGE参数
SM_CXCURSOR,
SM_CYCURSOR 返回以相素值为单位的标准光标的宽度和高度
SM_CXDLGFRAME,
SM_CYDLGFRAME 等同与SM_CXFIXEDFRAME and SM_CYFIXEDFRAME
SM_CXDOUBLECLK,
SM_CYDOUBLECLK 以相素值为单位的双击有效的矩形区域
SM_CXEDGE,SM_CYEDGE 以相素值为单位的3D边框的宽度和高度
SM_CXFIXEDFRAME,
SM_CYFIXEDFRAME 围绕具有标题但无法改变尺寸的窗口(通常是一些对话框)的边框的厚度
SM_CXFRAME,SM_CYFRAME 等同于SM_CXSIZEFRAME and SM_CYSIZEFRAME
SM_CXFULLSCREEN,
SM_CYFULLSCREEN 全屏幕窗口的窗口区域的宽度和高度
SM_CXHSCROLL,
SM_CYHSCROLL 水平滚动条的高度和水平滚动条上箭头的宽度
SM_CXHTHUMB 以相素为单位的水平滚动条上的滑动块宽度
SM_CXICON,SM_CYICON 系统缺省的图标的高度和宽度(一般为32*32
SM_CXICONSPACING,
SM_CYICONSPACING 以大图标方式查看Item时图标之间的间距,这个距离总是大于等于
SM_CXICON and SM_CYICON.
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_CXMINTRACK,
SM_CYMINTRACK 最小跟踪距离,当使用者拖动窗口移动距离小于这个值,窗口不会移动。
SM_CXSCREEN,
SM_CYSCREEN 以相素为单位计算的屏幕尺寸。
SM_CXSIZE,SM_CYSIZE 以相素计算的标题栏按钮的尺寸
SM_CXSIZEFRAME,
SM_CYSIZEFRAME 围绕可改变大小的窗口的边框的厚度
SM_CXSMICON,
SM_CYSMICON 以相素计算的小图标的尺寸,小图标一般出现在窗口标题栏上。
M_CXVSCROLL,
SM_CYVSCROLL 以相素计算的垂直滚动条的宽度和垂直滚动条上箭头的高度
SM_CYCAPTION 以相素计算的普通窗口标题的高度
SM_CYMENU 以相素计算的单个菜单条的高度
SM_CYSMCAPTION 以相素计算的窗口小标题栏的高度
SM_CYVTHUMB 以相素计算的垂直滚动条中滚动块的高度
SM_DBCSENABLED 如果为TRUE或不为0的值表明系统安装了双字节版本的USER.EXE,FALSE0则不是。
SM_DEBUG 如果为TRUE或不为0的值表明系统安装了debug版本的USER.EXE,FALSE0则不是。
SM_MENUDROPALIGNMENT 如果为TRUE或不为0的值下拉菜单是右对齐的否则是左对齐的。
SM_MOUSEPRESENT 如果为TRUE或不为0的值则安装了鼠标,否则没有安装。
SM_MOUSEWHEELPRESENT 如果为TRUE或不为0的值则安装了滚轮鼠标,否则没有安装。(Windows NT only)
SM_SWAPBUTTON 如果为TRUE或不为0的值则鼠标左右键交换,否则没有。
2. ShowWindow
函数ShowWindow(IntPtrhwnd, int nCmdShow)
(http://www.cnblogs.com/jackcovey/archive/2007/08/13/853994.html)
函数功能:该函数设置指定窗口的显示状态。
    
参数:
    hWnd
:窗口句柄。
    nCmdShow:指定窗口如何显示。如果发送应用程序的程序提供了STARTUPINFO(此处暂时先不用考虑STARTUPINFO的作用,引用MSDN的解释: Specifies the window station, desktop,standard handles, and appearance of the main window for a process at creationtime.是在创建的时候使用的一个结构体)结构,则应用程序第一次调用ShowWindow时该参数被忽略。否则,在第一次调用ShowWindow函数时,该值应为在函数WinMainnCmdShow参数。在随后的调用中,该参数可以为下列值之一:
    SW_FORCEMINIMIZE:在WindowNT5.0(NT: New Technology)中最小化窗口,即使拥有窗口的线程被挂起也会最小化。在从其他线程最小化窗口时才使用这个参数。
    SW_MIOE:隐藏窗口并激活其他窗口。
    SW_MAXIMIZE:最大化指定的窗口。
    SW_MINIMIZE:最小化指定的窗口并且激活在Z序中的下一个顶层窗口。
    SW_RESTORE:激活并显示窗口。如果窗口最小化或最大化,则系统将窗口恢复到原来的尺寸和位置。在恢复最小化窗口时,应用程序应该指定这个标志。
    SW_SHOW:在窗口原来的位置以原来的尺寸激活和显示窗口。
    SW_SHOWDEFAULT:依据在STARTUPINFO结构中指定的SW_FLAG标志设定显示状态,STARTUPINFO 结构是由启动应用程序的程序传递给CreateProcess函数的。
    SW_SHOWMAXIMIZED:激活窗口并将其最大化。
    SW_SHOWMINIMIZED:激活窗口并将其最小化。
    SW_SHOWMINNOACTIVATE:窗口最小化,激活窗口仍然维持激活状态。
    SW_SHOWNA:以窗口原来的状态显示窗口。激活窗口仍然维持激活状态。
    SW_SHOWNOACTIVATE:以窗口最近一次的大小和状态显示窗口。激活窗口仍然维持激活状态。
    SW_SHOWNOMAL:激活并显示一个窗口。如果窗口被最小化或最大化,系统将其恢复到原来的尺寸和大小。应用程序在第一次显示窗口的时候应该指定此标志。
    返回值:如果窗口以前可见,则返回值为非零。如果窗口以前被隐藏,则返回值为零。
    备注:应用程序第一次调用ShowWindow时,应该使用WinMain函数的nCmdshow参数作为它的nCmdShow参数。在随后调用ShowWindow函数时,必须使用列表中的一个给定值,而不是由WinMain函数的nCmdSHow参数指定的值。
3. UpdateWindow()
函数
函数声明: WINUSERAPI BOOL WINAPI UpdateWindow(__in HWNDhWnd);hWnd是要更新窗口客户区的窗口句柄。
通常应该将CreatWindow, ShowWindowUpdateWindow函数放在一起解释比较容易理解:
CreatWindow(创建已经注册过的窗口)-->ShowWindow-->UpdateWindow
After  the   CreateWindow  call   returns,   the   window  has   been   created   internally  in   Windows.   What   this  means   basically   is   that  Windows   has   allocated   a  block   of   memory   to  hold   all   the   information  about   the   window   that  you   specified   in   the  CreateWindow   call,   plus   some  other   information,   all   of  which   Windows   can   find  later   based   on   the  window   handle.
  However,   the   window  does   not   yet   appear  on   the   video   display.  Two   more   calls   are  needed.   The   first   is
  ShowWindow  (hwnd,   iCmdShow);
  The   first   argument  is   the   handle   to  the   window   just   created  by   CreateWindow.   The   second  argument   is   the   iCmdShow  value   passed   as   a  parameter   to   WinMain.   This  determines   how   the   window  is   to   be   initially  displayed   on   the   screen,  whether   it's   normal,   minimized,  or   maximized.   The   user  probably   selected   a   preference  when   adding   the   program  to   the   Start   menu.  The   value   you   receive  from   WinMain   and   pass  to   ShowWindow   is   SW_SHOWNORMAL  if   the   window   is  displayed   normally,   SW_SHOWMAXIMIZED  if   the   window   is   to  be   maximized,   and  SW_SHOWMINNOACTIVE   if   the  window   is   just   to   be  displayed   in   the   taskbar.    
The   ShowWindow  function   puts   the   window  on   the   display.   If  the   second   argument   to   ShowWindow  is   SW_SHOWNORMAL,   the   client  area   of   the   window  is   erased   with   the  background   brush   specified   in  the   window   class.   The  function   call    
  UpdateWindow   (hwnd)  
  then   causes  the   client   area   to  be   painted.   It  accomplishes   this   by   sending  the   window   procedure   (that  is,   the   WndProc   function  in   HELLOWIN.C)   a   WM_PAINT  message.   We'll   soon   examine  how   WndProc   deals   with  this   message.  
  ------
摘自<programming  windows>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值