标函数(Cursor)

来源:百度文库 编辑:神马文学网 时间:2024/04/28 11:15:14
2.6  标函数(Cursor)
2.6.1  ClipCursor
函数功能;该函数把光标限制在屏幕上的一个矩形区域内,如果调用SetCursor或用鼠标设置的一个随后的光标位置在该矩形区域的外面,则系统自动调整该位置以保持光标在矩形区域之内。
函数原型:BOOL CliepCursor(CONST RECT★ lpRect);
参数:
IpRect:指向RECT结构的指针,该结构包含限制矩形区域左上角和右下角的屏幕坐标,如果该指针为NULL(空),则光标可以在屏幕的任何区域移动。
返回值:如果成功,返回值非零;如果失败,返回值为零。若想获得更多错误信息,请调用GetLastError。
备注:光标是一个共享资源,如果一个应用控制了光标,在将控制转向另一个应用之前,必须要使用ClipCursor来释放光标,该调用过程必须具有对窗口的WINSTA_WRITEATTRIBUTES访问权。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件;user32.lib。
2.6.2  CopyCursor
函数功能:该函数复制一光标。
函数原型:HCURSOR CopyCursor(HCURSOR pcur);
参数:
pcur:被复制光标的句柄
返回值;如果成功,返回值是复制光标的句柄;如果失败,返回值为NULL(空)。若想获得更多错误信息,请调用GetLastError函数。
备注;CopyCursor函数能使一个应用程序或一个动态连接库(OLL)得到一个属于另一模块的光标形状的句柄。如果另外一个模块被释放,则该应用程序仍然可以使用该光标形状。
在关闭之前,一个应用程序必须调用DestroyCursor函数来释放任何与该光标有关的系统资源。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib
2.6.3  CreateCursor
函数功能:该函数创建一个指定大小、位模式和热点的光标。
函数原型:HCURSOR CreateCursor(HINSTANCE htnst,int xHotSpot;int yHotSpot;int nWidth;iut nHeight,CONST VOID ★pvANDPlane,CONST VOID ★pvXORPlane);
参数:
hlnst:创建光标的应用程序的当前事例句柄。
xHotSpot:指定光标热点的水平位置。
yHotSpot:指定光标热点的垂直位置。
nWidth:以像素为单位指定光标的宽度。
nHeight:以像素为单位指定光标的高度。
pvANDPlane:指向一个字节数组的指针,该数组包含光标AND掩码的位值,就象设备相关的单色位图一样。
pvXORPlane:指向一个字节数组的指针,该数组包含光标XOR掩码的位值,就象设备相关的单色位图一样。
返回值:如果成功,返回光标的值;如果失败,返回值为NULL(空),若想获得更多错误信息,调用GetLastError函数。
备注:nWidth和nHeight参数必须指定一个当前显示驱动支持的宽度和高度,因为系统不能创建一个其他尺寸的光标,为了确定显示驱动所支持的宽度和高度,请使用GetSystemMetrics函数,指定SM_CXCUROR或SM_CYCURSOR值。
在一个应用程序关闭之前,必须调用DestroyCursor函数来释放与光标有关的任何系统资源。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib。
2.6.4  DestroyCursor
函数功能:该函数销毁一个光标并释放它占用的任何内存,不要使用该函数去消毁一个共享光标。
函数原型:8OOL DestroyCUrsor(HCURSOR hCursor);
参数:
hCursor:要销毁的光标的句柄,该光标必须不在使用中。
返回值:如果成功,返回非零;如果失败,返回值为零,若想获得更多错误信息,请调用GetLastError函数。
备注:DestroyCursor函数销毁一个非共享的光标;不要用它销毁一个共享光标。一个共享光标只要调用它的模块仍在内存中,则该共享光标还是有效的,下面的函数可得到一个共享光标:LoadCursor;LoadCursorFronFile;Loadlmage(如果使用LR-SHARED标志);
Copylmage(如果使用LR_COPYRETURORG标志并且hlmags参数是一个共享光标)。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib。
2.6.5  GetClipCursor
函数功能:该函数检取一个矩形区域的屏幕坐标,光标被限制在该矩形区域之内。
函数原型:BOOL GetClipCursor(LPRECT IpRect);
参数:
IpRect:一个RECT结构的指针;接收限制矩形的屏幕坐标。如果该光标没有被限制在一个矩形区域内,则该RECT结构接收屏幕的尺寸。
返回值:如果成功,返回非零;如果失败,返回值为零,若想获得更多错误信息,请调用GetLastError函数。
备注:该光标是一个共享光标,如果一个应用程序使用ClipCursor函数来限制该光标,那么在它放弃控制转向另一个应用之前必须使用ClipCursor来释放该光标,该调用过程必须具有对窗口站的WINSTA_READATTRIBUTES访问权限。
速查:Windows NT:3.1及以上下版本;Windows:95及以上版本;Windows CE:不支持;头文件:Winusre.h;库文件:user32。lib。
2.6.6  GetCursor
函数功能:该函数检取当前光标的句柄。
函数原型:HCURSOR GetCursor(VOID);
参数:无。
返回值:返回值是当前光标的句柄,如果没有光标,返回值为NULL。
速查:Windows NT:3.1及以上版本;Wjhdows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib。
2.6.7  GetCursorpos
函数功能:该函数检取光标的位置,以屏幕坐标表示。
函数原型:BOOL GetCursorPos(LPPOlNT IpPoint);
参数:
IpPint:POINT结构指针,该结构接收光标的屏幕坐标。
返回值:如果成功,返回值非零;如果失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
备注:光标的位置通常以屏幕坐标的形式给出,它并不受包含该光标的窗口的映射模式的影响。该调用过程必须具有对窗口站的WINSTA_READATTRIBUTES访问权限。
速查:Windows NT:3.1及以上版本:Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib。
2.6.8  LoadCursorFromFile
函数功能:该函数根据一个文件中所含的数据创建光标。该文件由它的名字所指定或由一个系统光标鉴别器指定,该函数返回一个新建光标的句柄,文件所包含的光标数据可以是光标格式(CUR)或运动光标格式(.ANI)。
函数原型:HCURSOR LoadCursorFromFile(LPCTSTR IpFileName);
参数:
IpFileName:指明创建光标所用的文件数据资源,文件中的数据格式必须是COR或ANI,如果IpFileName的高位字为非零,则IpFileName就是指向一个字符串的指针,该字符串是包含光标数据的文件的名字。
如果IpFileName的高位字为零,低位字是系统光标标识符,则该函数在WIN.INI文件中搜索与系统光标名字有关的[Cursors]条目,下面是系统光标的名字和标识符的清单:
“AppStarting”:OCR_APPSTARTING;“Arrow”:OCR_NORMAL“Crosshair”:OCR_CROSS;“Hand”:WindowsNT5.0 and laterOCR_HAND;“Help”:OCR_HELP;“IBeam”:OCR_IBEAM;“Icon”:OCR_ICON;“No”:OCR_NO;“Size”:OCR_SIZE;
“SizeAll”:OCR_SIZEALL;“SizeNESW”:OCR_SIZENESW;“SizeNS”:OCR_SIZENS;“SizeNWSE”:OCR_SIZENESW;“SizeWE”:OCR_SIZEWE;“UpArrow”:OCR_UP;“Wait”:OCR_WAIT
返回值:如果成功,返回值是新建光标的句柄;如果失败,返回值为空(NULL)。若想获得更多错误信息,请调用GetLastError函数。GetLastError也许会返回如下的值:ERROR_FILE_NOT_FOUND,没有找到指定的文件。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本:Windows CE:不支持;头文件:winuser.h;库文件:user32.lib;Unicode:在Windows NT中实现Unicode和ANSI两个版本。
2.6.9  SetCursor
函数功能:该函数确定光标的形状。
函数原型: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光标组件。该组件不支持彩色光标。
速查:Window NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。
2.6.10  SetCursorPos
函数功能:该函数把光标移到屏幕的指定位置。如果新位置不在由 ClipCursor函数设置的屏幕矩形区域之内,则系统自动调整坐标,使得光标在矩形之内。
函数原型:BOOL SetCursorPOS(int X,int Y);
参数:
X:指定光标的新的X坐标,以屏幕坐标表示。
Y:指定光标的新的Y坐标,以屏幕坐标表示。
返回值:如果成功,返回非零值;如果失败,返回值是零,若想获得更多错误信息,请调用GetLastError函数。
备注:该光标是共享资源,仅当该光标在一个窗口的客户区域内时它才能移动该光标。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib。
2.6.11  SetSystemCursor
函数功能:该函数使一个应用程序定制系统光标。它用hcur规定的光标内容代替id定义的系统光标内容,接着销毁hour。
函数原型:BOOL SetSystemCursor(HCURSOR hour,DWORD id);
参数:
hcur:光标的句柄,该函数hcur标识的光标的内容代替id定义的系统光标内容。系统通过调用DestroyCursor函数销毁hour。因此hour不能是由LoadCursor函数载入的光标。要指定一个从资源载入的光标,先用CopyCursor函数复制该光标,然后把该副本传送给SetSystemCursor函数。
Id:指定由hour的内容替换系统光标。
下面是一系列的系统光标标识符:
OCR_APPSTARTING:标准箭头和小的沙漏;OCR_NORAAC:标准箭头
OCR_CROSS:交叉十字线光标:OCR_HAND:手的形状(WindowsNT5.0和以后版本)
OCR_HELP:箭头和向东标记;OCR_IBEAM:I形梁;OCR_NO:斜的圆
OCR_SIZEALL:四个方位的箭头分别指向北、南、东、西
OCR_SIZENESEW:双箭头分别指向东北和西南;OCR_SIZENS:双箭头,分别指向北和南
OCR_SIZENWSE:双箭头分别指向西北和东南;OCR_SIZEWE:双箭头分别指向西和东
OCR_UP:垂直箭头:OCR_WAIT:沙漏返回值:如果成功,返回非零值;如果失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib。
2.6.12  ShowCursor
函数功能:该函数显示或隐藏光标。
函数原型:int ShowCursor(BOOL bShow);
参数:
bShow:确定内部的显示计数器是增加还是减少,如果bShow为TRUE,则显示计数器增加1,如果bShow为FALSE,则计数器减1。
返回值:返回值规定新的显示计数器。
备注:该函数设置了一个内部显示计数器以确定光标是否显示,仅当显示计数器的值大于或等于0时,光标才显示,如果安装了鼠标,则显示计数的初始值为0。如果没有安装鼠标,显示计数是C1。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib。
2.6.13  LoadCursor
函数功能:该函数从一个与应用事例相关的可执行文件(EXE文件)中载入指定的光标资源。该函数已被Loadlmage函数替代。
函数原型:HCURSOR LoadCursor(HINSTANCE hlnstance,LPCTSTR lpCursorName);
参数:
hlnstance:标识一个模块事例,它的可执行文件包含要载入的光标。
LpCursorName:指向以NULL结束的字符串的指针,该字符串存有等载入的光标资源名。该参数低位字节和高位字节0组成资源标识器也可以由低位字为资源标识符和高位字为零组成。也可以用MADEINTRES_OURCE宏命令创建该值。
要使用Win32预定义的一个光标,应用程序必须把hlnsfance参数设为NULL,并把IpCursorName设为如下值之一:
IDC_APPSTARING:标准箭头和小沙漏;IDC_ARROW:标准光标;IDC_CROSS:十字光标。
返回值:如果成功,返回值是新载入的光标的句柄:如果失败,返回值是NULL。若想获得更多错误信息,请调用GetLastError函数。
备注:LoadCursor函数仅载入没有被载入过的光标资源,否则,它检取已存在的光标资的句柄。仅当IpCursorName参数指向一个光标资源时,该函数才返回一个有效的光标句柄。如果IpCursorName不是指向光标而是指向了其他类型的资源(如icon),则该函数返回值不是NULL,尽管它不是一个有效的光标句柄,该函数为当前显示设备光标搜寻最贴切的光标资源。光标资源可以是彩色或单色的位图。
Windows CE:当目标平台不支持鼠标光标时。使用cursor光标组件。该光标组件支持的唯一的光标是等待光标(IDC_WAIT)。使用LoadCursor函数与SetCursor函数可设值等待光标。SetCursor(LoadCursor(NULL,IDC_WAIT))当目标平台不支持鼠标光标时,使用cursor光标组件,该组件以桌面窗口平台同样的方式支持LoadCursor函数,唯一不同的是仅支持单色光标。Windows CE不支持彩色光标。试图载入一个彩色光标,将产生难以预料的结果。返回值是不确定的。