2024年5月29日发(作者:)
用VC开发的Windows应用程序时,可以分四步对窗口上的鼠标光标进行定制,手
工编辑Cursor、定义Cursor变量、加载Cursor变量、控制Cursor行为。每个步骤的详
细说明如下:
(1)手工编辑Cursor。在资源编辑器里增加一个Cursor,VC会自动给它分配一个ID(比
如:IDC_CURSOR1),然后手工编辑Cursor的形状,编辑好后保存一下。你会看到Cursor
的属性框中,有一个File name项里标明了该Cursor资源的文件路径()
(2)定义Cursor变量。定义一个HCURSOR类型的变量myCursor,存放Cursor对
象。
HCURSOR myCursor;
(3)加载Cursor变量。在你需要改变鼠标光标的函数里添加Cursor的加载代码,将定
义好的Cursor资源加载到前面的Cursor变量里,如果想程序一开始就自动显示个性化定
制的鼠标光标,则在初始化函数(如:对话框初始化函数OnInitDialog)里加载Cursor。VC
加载Cursor的办法很多,可以用CWinApp::LoadCursor加载,也可以用Windows API
中的LoadCursor加载。但这两种办法都只能改变Cursor的形状,不能改变大小。如果需
要改变大小就只能用LoadImage,代码如下:
myCursor=(HCURSOR)LoadImage(NULL,"res/",IMAGE_CURSOR,72,
32,LR_LOADFROMFILE );
这是一个比较复杂的Windows API函数,有六个参数。可以向内存中加载位图、ICON
和Cursor。函数原型如下
HANDLE LoadImage(
HINSTANCE hinst,
| LPCTSTR lpszName,
UINT uType,
int cxDesired,
int cyDesired,
UINT fuLoad );
下面只解释与加载Cursor相关的参数用法:
hinst:指向需加载该资源的module,(我还不太清楚module的确切函义,是一个
程序,还是一个进程,还是一个库),不过一般可以将这个参数设为NUll。
lpszName:标识要加载的资源,如果fuLoad设为LR_LOADFROMFILE,则该参数
为资源的文件名,如位图文件、ICON文件,当然也包括Cursor文件。
uType:指明加载的资源类型,它的值可以是IMAGE_BITMAP. 加载位图;
IMAGE_CURSOR. 加载cursor;IMAGE_ICON. 加载ICON。
cxDesired,光标的宽度,值是以像素为单位的整数。


发布评论