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