《MFC程序设计轻松入门》关于改变客户区光标为“I”型光标的一段程序:生成的程序上不显示光标。
发布网友
发布时间:2022-07-19 10:02
我来回答
共1个回答
热心网友
时间:2023-10-15 15:28
我在VS2008下测试过你的代码。结果的确没有出现"I"型光标。
我个人认为原因如下:
m_hMycursor= AfxGetApp()->LoadCursor(IDC_IBEAM);
应该改为:
m_hMycursor=LoadCursor(NULL,IDC_IBEAM);
前者意思是,在当前应用程序中加载资源号为IDC_IBEAM的光标,返回它的句柄;
后者意思是,加载WINDOWS资源号为IDC_IBEAM的光标,返回它的句柄;
WINDOWS中已经定义了很多默认的资源ID(WinUser.h头文件中你可以找到IDC_IBEAM),这些资源的使用不是依赖于具体实例的,所以LoadCursor的第一个参数为NULL;而如果你在自己的应用程序中画了一个光标,资源号为IDC_CURSOR1,那么这个资源号只有你的应用程序认识,所以要用AfxGetApp()->LoadCursor函数来加载光标资源。