VC++获取鼠标单击的位置代码讲解下

voidCRipple::ripple_click(intmousex,intmousey){intindex;index=0;while(t[index]<max[in... void CRipple::ripple_click(int mousex, int mousey)
{
int index;
index = 0;
while (t[index] < max[index] && index < RIPPLE_COUNT)
index++;

if (index < RIPPLE_COUNT)
{
cx[index] = 1.0*mousex/win_size_x*GRID_SIZE_X;
cy[index] = 1.0*mousey/win_size_y*GRID_SIZE_Y;
t[index] = 4*RIPPLE_STEP;
max[index] = ripple_max_distance(cx[index], cy[index]);
}
}
这段代码是获取鼠标单击的位置的,就是if里面的那两个cx和cy不懂,我如果去掉1.0,鼠标点击位置就变了..这是OpenGl高级编程与可视化里的一段代码。
展开
 我来答
自由之城66
2014-03-21 · TA获得超过230个赞
知道小有建树答主
回答量:245
采纳率:0%
帮助的人:137万
展开全部
这个好写啊。你用MFC写的话,在你的对话框类上点击右键,选择add window message handle 添加WM_LBUTTONDOWM ,这个是左键响应,或者直接在你要电击的对话框上,选择右键的 classwizard,选择messages里面的WM_LBUTTONDOWM ,添加后会有个OnLButtonDown函数,函数里面的CPoint point参数就是鼠标的位置。比如你可以判断:
if (point.x>0&&point.x<300&&point.y>0&&point.y<500&&)
{
//调用其他程序
WinExec("Notepad.exe ", SW_SHOW);
}case WM_LBUTTONDOWN:
x=LOWORD(lParam);
y=HIWORD(lParam);
break;case WM_LBUTTONDOWN:
mouse_x=LOWORD(lParam);
mouse_y=HIWORD(lParam);
sprintf(str,"%d,%d",mouse_x,mouse_y);//显示坐标
TextOut(cdc,20,20,str,strlen(str));
break;
百度网友635c934
2014-03-21 · TA获得超过100个赞
知道答主
回答量:76
采纳率:0%
帮助的人:55.1万
展开全部
乘以1.0是保证出来的结果是float,避免int造成的数据丢失
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式