>看书笔记~

InvalidateRect函数用法:

InvalidateRect  
  The   InvalidateRect   function   adds   a   rectangle   to   the   specified   window's   update   region.   The   update   region   represents   the   portion   of   the   window's   client   area   that   must   be   redrawn.    
   
  BOOL   InvalidateRect(  
      HWND   hWnd,     //   handle   of   window   with   changed   update   region  
      CONST   RECT   *lpRect,  
                              //   address   of   rectangle   coordinates  
      BOOL   bErase   //   erase-background   flag  
  );  
     
  Parameters  
  hWnd    
  Handle   to   the   window   whose   update   region   has   changed.   If   this   parameter   is   NULL,   the   system   invalidates   and   redraws   all   windows,   and   sends   theWM_ERASEBKGND   and   WM_NCPAINT   messages   to   the   window   procedure   before   the   function   returns.    
  lpRect    
  Pointer   to   a   RECT   structure   that   contains   the   client   coordinates   of   the   rectangle   to   be   added   to   the   update   region.   If   this   parameter   is   NULL,   the   entire   client   area   is   added   to   the   update   region.    

 

 

 

函数功能:该函数设置所指定滚动条中的滚动按钮的位置,如要求重画滚动条以反映出滚动按钮的新位置。该函数提供了向后兼容性,新的应用程序应使用SetScrolllnfo函数。

    函数原型:int SetScrollPos(HWN hWnd,int nBar,int nPos,BOOL bRedraw);

    参数:

    hWnd:滚动条控制或带有标准滚动条窗体的句柄,由nBar参数值确定。

    nBar:指定滚动条将被设置。这个参数可以是下面值,含义如下:

    SB_CTL:设置滚动条控制中滚动翻页盒的位置。而参数hwnd必须是滚动条控制的句柄。

    SB_HORZ:设置窗体上标准水平滚动翻页盒的位置。

    SB_VERT:设置窗体上标准垂直滚动翻页盒的位置。

    nPos:指定滚动翻页盒的新位置。这个位置必须在滚动范围之内。若要了解更多有关滚动范围的信息,请参见SetScrollRange函数。

    bRedraw:指定滚动条是否被重画以反映出新的滚动翻页盒的位置。如果这个参数为TRUE,则滚动条将被重画;为FALSE则滚动条不被重画。

    返回值:如果函数运行成功,其返回值是滚动翻页盒的前一个位置。如果函数运行失败,其返回值是0。若想获得更多的错误信息,请调用GetLastError函数。

    注意:如果由于其他并发函数调用,滚动条又被重画,那么设置参数bRedraw为负时非常有必要的。

    因为说明滚动条位置的消息WM_HSCROLL和WM_VSCROLL只能为16位数据,那些只依赖于说明位置数据消息的应用程序在函数SetScrollPos的参数nPos中有一个实际最大值。

    但是,因为函数SetScrolllnfo,SetScrollPos,SetScrollRange,GetScrollPos, 和 GetScrollRange都支持32位的滚动条位置数据,所以有一个解决16位WM_HSCROLL和WM_VSCROLL消息阻碍的途径,请参见函数GetScrolllnfo的有关技术说明。

 
  bErase    
  Specifies   whether   the   background   within   the   update   region   is   to   be   erased   when   the   update   region   is   processed.   If   this   parameter   is   TRUE,   the   background   is   erased   when   the   BeginPaint   function   is   called.   If   this   parameter   is   FALSE,   the   background   remains   unchanged.    
  Return   Values  
  If   the   function   succeeds,   the   return   value   is   nonzero.  
   
  If   the   function   fails,   the   return   value   is   zero.    
   
  Windows   NT:   To   get   extended   error   information,   callGetLastError.  
   
  Remarks  
  The   invalidated   areas   accumulate   in   the   update   region   until   the   region   is   processed   when   the   next   WM_PAINT   message   occurs   or   until   the   region   is   validated   by   using   the   ValidateRect   or   ValidateRgn   function.    
   
  The   system   sends   a   WM_PAINT   message   to   a   window   whenever   its   update   region   is   not   empty   and   there   are   no   other   messages   in   the   application   queue   for   that   window.    
   
  If   the   bErase   parameter   is   TRUE   for   any   part   of   the   update   region,   the   background   is   erased   in   the   entire   region,   not   just   in   the   given   part.     
   

GetWindowsLong函数:

函数功能描述:用这个函数能够获得指定窗口的信息

函数原型:
LONG GetWindowLong( HWND hWnd,int nIndex )

参数:
hWnd:指定窗口的句柄
nIndex:需要获得的信息的类型
     值            功能

nIndex取值如下:
GWL_EXSTYLE    得到扩展的窗口风格
GWL_STYLE      得到窗口风格
GWL_WNDPROC    得到窗口回调函数的地址,或者句柄。得到后必须使用CallWindowProc函数来调用
GWL_HINSTANCE  得到应用程序运行实例的句柄
GWL_HWNDPARENT 得到父窗口的句柄
GWL_ID         得到窗口的标识符
GWL_USERDATA   得到和窗口相关联的32位的值(每一个窗口都有一个有意留给创建窗口的应用程序是用的32位
               的值)

当hWnd标识一个对话框时可以使用下面的值
Value Action
DWL_DLGPROC   得到对话框回调函数的地址,或者句柄。得到后必须使用CallWindowProc函数来调用
DWL_MSGRESULT 得到对话框回调函数中消息处理过程的返回值
DWL_USER      得到额外的应用程序私有信息,如一些句柄和指针等

返回值:
成功时,返回一个请求的32位的值
失败时,返回0,可以使用GetLastError来取得错误信息

示例:
long nStyle = ::GetWindowLong(hWnd, GWL_STYLE);   // hWnd是一个编辑框的句柄
if(nStyle & ES_PASSWORD)
{
    AfxMessageBox("这是一个密码域");
}


 

 

 

函数功能:该函数确定光标的形状。

    函数原型:HCURSOR SetCursor(HCURSOR hCursor);

    参数:

    hCursor:光标的句柄,该光标由CreateCursor函数载入。如果该参数为NULL,则该光标从屏幕上移开。在Windows95中该光标的宽和高是GetSysfemMefirics 函数的返回值SM_CXCURSOR和观_CYCURSOR,并且光标的位深必须和显示器的位深相匹配,或者光标是单色的。

    返回值:如果有前一个光标,则返回值是前光标的句柄;如果没有前光标,则返回值是NUL。

    备注:仅当新光标与前光标不同时,才设置该光标,不然的话,该函数立即返回。该光标是一个共享资源。一个窗口仅当光标在其客户区域,或者它正在捕捉鼠标输入时,它才设置光标的形状。在一个没有鼠标的系统中,该窗口在光标离开它的客户区域或它要把控制权交给其他窗口之前,它会恢复以前的光标。 如果应用程序必须在窗口中设置光标,必须确保指定窗口类的类光标被设为NULL,如果类光标不是NULL,则每次移动鼠标时,系统都要恢复类光标。如果内部的光标显不计数值小于零,则光标不在屏幕上显示。当一个应用程序使用ShowCursor函数隐藏光标的次数多于显示光标的次数时,则会发生这种情况。Windows CE:当一个目标平台不支持鼠标光标时,使用cursor光标组件,该光标组件仅支持等待光标,设置等待光标,使用如下的代码:SetCursor(LoadCursor(NULL,IDC_WAIT));当一个目标平台不支持鼠标光标时,使用mcursor光标组件。该组件不支持彩色光标。


文章出处:http://www.diybl.com/course/3_program/c++/chs/2007114/83560.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值