vc运行中改变鼠标指针

::OnMouseMove(UINTnFlags,CPointpoint)中if(CRect(209,64,241,96).PtInRect(point)){//请大侠帮... ::OnMouseMove(UINT nFlags, CPoint point)中
if (CRect(209,64,241,96).PtInRect(point))
{//请大侠帮忙写
}
要求能加载鼠标为手型。Debug文件夹中已经有harrow.cur,并已经加载到资源中,为ID_HAND。
SetCursor(::LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDC_HAND)));没用。
资源名为IDC_HAND 不好意思打错了
展开
 我来答
百度网友5a51b92
2015-10-08 · TA获得超过2923个赞
知道答主
回答量:295
采纳率:78%
帮助的人:14.9万
展开全部

鼠标指针的创建和使用:

 

  1、创建鼠标指针:

 

  1)鼠标指针是一种资源,因此在资源文件(.rc)中定义,但是创建跟图标差不多,要在绘图窗口中完成;

 

  2)启动VC,单击“打开工作区”命令,打开上一课的Mouse工作区文件,单击“执行”按钮,看看程序运行时鼠标的指针形态,可以看到,在窗口区内是一个单箭头的选择指针,关闭程序,返回VC窗口;

 

  3)选择文件菜单中的“新建”命令,注意在新建面板左边的文件类型中选择“Cusor File”指针类型,在右边文件名称中输入curMouse单击“确定”加入绘图窗口;

 

  4)绘图窗口跟上次的图标窗口相似,仔细瞧一瞧工具箱是一样的,但是调色板不一样,只有黑白两色,

 

 中间彩色的两个显示器是什么颜色呢?上面的蓝绿色表示透明色,也就是透明的,在上次绘图标时我们用黄色填充了,

 

 下面的红色显示器表示翻转色,这个颜色跟背景色相反,即不同的背景色会显示不同的翻转色,因此不论黑白背景,都能看到鼠标;

 

  5)选择直线工具,选择翻转色绘制一个大的十字,中间用黑色绘制一个小框,这是十字精确定位指针,准星应该在十字中心,这一点称作“热点”,

 

 单击一下工具箱左边的工具条上的一个发光的小按钮,鼠标指针移到绘图区会变成一个小十字,在中心点击一下,这一点将成为鼠标指针的热点;

 

  2、加载指针:

 

  1)保存一下文件,关闭绘图窗口,打开Mouse.h头文件,加入鼠标指针的标识符申明:

 

#define IDC_MYCUR 201

 

  保存一下文件;

 

  2)打开记事本,单击“保存”按钮,位置保存在自己文件夹的Mouse中,文件名为Mouse.rc文件类型为“所有文件”,创建一个资源文件;

 

  3)输入以下代码,定义一个鼠标指针资源,绿色双斜杠部分是注释:

 

#include "Mouse.h"//要用头文件中申明的标识符

 

//下面定义一个鼠标指针
IDC_MYCUR CURSOR DISCARDABLE  "curMouse.cur" 
//标识符,   指针, 内存清除,  指针文件名

 

  4)打开“工程”菜单,选择“添加工程”里的“Files...”命令,在弹出的对话框中选择资源文件Mouse.rc,单击“确定”,把资源文件加入到工程中;

 

  保存一下文件;

 

  3、使用指针:

 

  1)在左边的项目控制台里头双击打开Mouse.cpp,找到InitApplication函数代码段;

 

  2)找到里面加载鼠标指针的一句,把原来的箭头指针换掉,

 

 代码改为:wcMouse.hCursor=LoadCursor(hInstance,MAKEINTRESOURCE(201));

 

 其中的201就是在头文件中定义的标识符的值,代表了资源文件中定义的指针资源;

 

  保存一下所有文件;

 

  单击编译条上的构建按钮,开始构建程序,如果输出窗口出现错误,那就在三个文件中仔细核对,每次修改了要及时保存,构建成功后就可以单击“执行”按钮,看看程序发生的变化;

felixliu2008
2013-08-07 · TA获得超过295个赞
知道小有建树答主
回答量:337
采纳率:100%
帮助的人:193万
展开全部
MFC 编程基于对话框程序,我的做法是在对话框初始化程序中加载光标资源:
BOOL COpenCSVDlg::OnInitDialog()
{
CDialog::OnInitDialog();
......
hCursor=AfxGetApp()->LoadCursor(IDC_CURSOR2);

然后在 SetCursor 消息处理中设置光标。
BOOL COpenCSVDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
::SetCursor(hCursor);
return TRUE;
...
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式